導航:首頁 > 編程大全 > android使用外部資料庫

android使用外部資料庫

發布時間:2023-01-29 07:43:55

❶ 如何使用外部的資料庫文件

平時見到的android資料庫操作一般都是在程序開始時創建一個空的資料庫,然後再進行相關操作。如果需要使用一個已有數據的資料庫怎麼辦呢?
都知道android系統下資料庫應該存放在 /data/data/com.*.*(package name)/ 目錄下,所以需要做的是把已有的資料庫傳入那個目錄下。操作方法是用FileInputStream讀取原資料庫,再用FileOutputStream把讀取到的東西寫入到那個目錄。

❷ 如何往android中添加資料庫

一、新建外部SQLite資料庫
(1)下載並安裝 SQLite可視化管理工具(SQLite Expert Pro) v3.4.17 破解版
http://www.cr173.com/soft/36343.html
(2)將你手頭上的數據放到EXCEL表格中,保存為CSV格式的數據
(3)在此工具中按照你現有的數據格式新建資料庫和表,如資料庫為:contact.db,表為employee
(4)通過此工具菜單欄中Import/Export下的Import text file(CSV,TSC)功能,將你現有的CSV數據導入到你新建的數據表中(主要目的是省的一個一個的錄入了)
二、在eclipse中新建一個android app工程,並在新建的工程文件夾點右鍵new->folder,在res文件夾下新建raw文件夾(如果有就不用新建了)
三、用滑鼠將新建的SQLite資料庫文件contact.db拖動到新建工程的res下的raw文件下,出現提示,選擇
四、程序代碼
private static final String DATABASE_PATH = "/data/data/你的主程序包路徑(如:com.szair.contact)/databases";
private static final int DATABASE_VERSION = 0;
private static final String DATABASE_NAME = "contact.db";
private static String outFileName = DATABASE_PATH + "/" + DATABASE_NAME;
try {
buildDatabase();//見下
} catch (Exception e) {
e.printStackTrace();
}
//SQLiteDatabase對象
SQLiteDatabase db=SQLiteDatabase.openDatabase(outFileName, null,SQLiteDatabase.NO_LOCALIZED_COLLATORS);
String t="SELECT 欄位名1,欄位名2 FROM employee WHERE **** ORDER BY ***";
Cursor c =db.rawQuery(t, null);
if(c.moveToFirst()){
for(int i=0;i
{
String zian1=c.getString(0);//欄位1的數據
String zian2=c.getString(1);//欄位1的數據
}
}
------------------------------------------------
//前面用到的buildDatabase方法
private void buildDatabase() throws Exception{
InputStream myInput = getResources().openRawResource(R.raw.sz_contact);
File file = new File(outFileName);
File dir = new File(DATABASE_PATH);
if (!dir.exists()) {
if (!dir.mkdir()) {
throw new Exception("創建失敗");
}
}

if (!file.exists()) {
try {
OutputStream myOutput = new FileOutputStream(outFileName);

byte[] buffer = new byte[1024];
int length;
while ((length = myInput.read(buffer))>0){
myOutput.write(buffer, 0, length);
}
myOutput.close();
myInput.close();
} catch (Exception e) {
e.printStackTrace();
}

}
}
五、程序發布
按照以上方式,可以將外部建的SQLite資料庫成功的發布出來

❸ 如何導入已有的外部資料庫

導入已有的外部資料庫的方法:
第一種是右擊資料庫,然後點擊附加。出現下面的界面。然後選擇添加,添加上你要添加的mdf文件即可。
第二種方法是:新建查詢,然後輸入下列語句,
EXEC sp_attach_db @dbname = 'yourdatabasename',
@filename1 = 'x:\路徑\MSSQL\Data\pubs.mdf',
@filename2 = 'x:\路徑\MSSQL\Data.Ldf

❹ android怎麼使用外部的資料庫文件

先簡來單說下步驟:

將格式為源.db的資料庫文件放到android項目assets目錄中;
在程序必要的時候,將其「拷貝」(文件讀取)到Android 程序默認的資料庫存儲目錄中,一般路徑為「/data/data/項目包名/databases/「;
自定義SQLiteOpenHelper類,創建一個名字跟步驟1中.db名稱一樣的資料庫;
按照平常邏輯,增刪改查資料庫。

❺ android 怎麼替換外部資料庫

1. 把原資料庫包括在項目源碼的 res/raw 目錄下,然後建立一個DBManager類,代碼如下:

package com.android.ImportDatabase;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import android.content.Context;

import android.database.sqlite.SQLiteDatabase;

import android.os.Environment;

import android.util.Log;

public class DBManager {

private final int BUFFER_SIZE = 400000;

public static final String DB_NAME = "countries.db"; //保存的資料庫文件名

public static final String PACKAGE_NAME = "com.android.ImportDatabase";

public static final String DB_PATH = "/data"

+ Environment.getDataDirectory().getAbsolutePath() + "/"

+ PACKAGE_NAME; //在手機里存放資料庫的位置

private SQLiteDatabase database;

private Context context;

DBManager(Context context) {

this.context = context;

}

public void openDatabase() {

this.database = this.openDatabase(DB_PATH + "/" + DB_NAME);

}

private SQLiteDatabase openDatabase(String dbfile) {

try {

if (!(new File(dbfile).exists())) {//判斷資料庫文件是否存在,若不存在則執行導入,否則直接打開資料庫

InputStream is = this.context.getResources().openRawResource(

R.raw.countries); //欲導入的資料庫

FileOutputStream fos = new FileOutputStream(dbfile);

byte[] buffer = new byte[BUFFER_SIZE];

int count = 0;

while ((count = is.read(buffer)) > 0) {

fos.write(buffer, 0, count);

}

fos.close();

is.close();

}

SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(dbfile,

null);

return db;

} catch (FileNotFoundException e) {

Log.e("Database", "File not found");

e.printStackTrace();

} catch (IOException e) {

Log.e("Database", "IO exception");

e.printStackTrace();

}

return null;

}

//do something else here<br>

public void closeDatabase() {

this.database.close();

}

}

然後在程序的首個Activity中示例化一個DBManager對象,然後對其執行openDatabase方法就可以完成導入了,可以把一些要對資料庫進行的操作寫在DBManager類里,然後通過DBManager類的對象調用;也可以在完成導入之後通過一個SQliteDatabase類的對象打開資料庫,並執行操作。

我的做法是 在程序的首個Activity中導入資料庫:

package com.android.ImportDatabase;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

public class RootView extends Activity {

public DBManager dbHelper;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

dbHelper = new DBManager(this);

dbHelper.openDatabase();

dbHelper.closeDatabase();

}

}

此時在DDMS中可以查看到,外部資料庫已經成功導入

❻ Android 怎麼連接遠程資料庫

一般是不會直接連接資料庫的,就像我們瀏覽網站一樣,也是通過後端程序連接資料庫的。

若你需要的是嵌入資料庫,那另外的說法,MySQL提供嵌入式版本很輕量的

❼ android訪問其他資料庫需要什麼許可權

android訪問其他資料庫需要什麼許可權

如果您需要讓某些登錄用戶具有不同的訪問許可權,請確保用戶資料庫表格包含一個特定的列,該列指定每個用戶的訪問許可權(「來賓」、「用戶」、「管理員」等)。每個用戶的訪問許可權應該由站點管理員在資料庫中輸入。
在大多數資料庫應用程序中,每當新建一個記錄時,可以將一個列設置為默認值。將該默認值設置為站點上最常用的訪問許可權(例如「來賓」);然後手動更改例外的情況(例如,將「來賓」更改為「管理員」)。用戶現在即可訪問所有管理員頁。
確保資料庫中的每個用戶都具有單一的訪問許可權(例如「來賓」或「管理員」),而不是多項許可權(例如「用戶、管理員」)。如果要為您的頁設置多項訪問許可權(例如,所有來賓和管理員都可以查看該頁),則在頁級別(而不是在資料庫級別)設置這些許可權。

訪問lync資料庫需要什麼許可權

安裝 Lync Server 2010 的用戶必須具有 Schema Admins 組許可權,當然還必須要具備 Domain Admins組許可權 和 Enterprise Admins組許可權。
1.安裝
2.安裝拓撲生成器
3.生成拓撲
然後選擇拓撲文件存放位置
主SIP域,一般為主域名 例如 contoso.
有沒有額外的域,如果沒有直接下一步
每個部署必須至少聚友一個站點。如果您的部署具有多個站點,以後可以使用「新建站點」向導添加其他站點。
定義一個相應版本的FQDN名稱
當前前端伺服器池中的伺服器FQDN名稱
勾選功能
安裝SQL伺服器的 FQDN名稱
定義一個共享文件夾,用於存放會議PPT等文件,注意:此共享不要在前端伺服器上。
公網域名
如果有,需要指定PSTN的網關IP地址
4. AD准備完成後,需要做兩方面的准備
1.需要把管理Lync的賬號加入 SCAdminitrator組 和 RTCUniversalServerAdmins 組
2.在DNS中添加A記錄
pool.contoso.
admin.contoso. 指向前端伺服器
meet.contoso. 會議
dialin.contoso. 電話撥入

android 怎麼訪問其他運用的資料庫

按照Android的流程,創建資料庫的程序應該提高一個Provider,這樣另外的程序就可以通過這個Provider來訪問這個資料庫了。

mysql創建資料庫需要什麼許可權

你都不是安全登錄的,沒有建庫的許可權,重新退出mysql,
在cmd下執行 mysql -u root -p密碼<img id="selectsearch-icon" src=:img../img/iknow/qb/select-search.png alt="搜索">

伺服器,ACC資料庫C盤需要什麼許可權?

許可權必須是系統管理員administrator的完全控制

如何直接用SQL語句訪問其他資料庫

select * from openrowset( 'SQLOLEDB ', 'sql伺服器名 ' '用戶名 ' '密碼 ',資料庫名.dbo.表名)

什麼是許可權?用戶訪問資料庫有哪些許可權?

許可權 是指為了保證職責的有效履行,任職者必須具備的,對某事項進行決策的范圍和程度。它常常用「具有批准……事項的許可權」來進行表達。例如,具有批准預算外5000元以內的禮品費支出的許可權。
只有在需要讓某些登錄用戶具有不同的訪問許可權時,該構造塊才是必需的。如果您只是要求用戶登錄,則不需要存儲訪問許可權。
如果您需要讓某些登錄用戶具有不同的訪問許可權,請確保用戶資料庫表格包含一個特定的列,該列指定每個用戶的訪問許可權(「來賓」、「用戶」、「管理員」等)。每個用戶的訪問許可權應該由站點管理員在資料庫中輸入。
在大多數資料庫應用程序中,每當新建一個記錄時,可以將一個列設置為默認值。將該默認值設置為站點上最常用的訪問許可權(例如「來賓」);然後手動更改例外的情況(例如,將「來賓」更改為「管理員」)。用戶現在即可訪問所有管理員頁。
確保資料庫中的每個用戶都具有單一的訪問許可權(例如「來賓」或「管理員」),而不是多項許可權(例如「用戶、管理員」)。如果要為您的頁設置多項訪問許可權(例如,所有來賓和管理員都可以查看該頁),則在頁級別(而不是在資料庫級別)設置這些許可權。

db2資料庫用戶建緩沖池需要什麼許可權

PrintPreviewDialog pPDlg;
exec_prefix='NONE'PACKAGE='libevent'
PACKAGE_BUGREPORT=''
PACKAGE_NAME=''
PACKAGE_STRING=''
PACKAGE_TARNAME=''
PACKAGE_URL=''
PACKAGE_VERSION=''
PATH_SEPARATOR=':'

Android資料庫許可權!

資料庫支持,無論生命線的大小每一個應用程序,除非你的應用程序只能處理簡單的數據,你需要一個資料庫系統來存儲你的結構化數據,使用SQLite資料庫,這是一個開源的Android,支持多操作系統的SQL資料庫廣泛應用於許多領域,如Mozilla Firefox是使用SQLite的存儲配置數據,iPhone還使用SQLite來存儲數據。
在Android中,您創建一個應用程序的資料庫,只有它可以訪問,其他應用程序無法訪問位於Android設備/數據/數據/ /資料庫文件夾中的資料庫,在這篇文章中,您將學習如何創建和使用在Android的資料庫。
SQLite資料庫
使用Eclipse創建一個Android項目,命名資料庫,如圖1:
中國1資料庫 - 使用Eclipse創建新項目的Android
創建最佳實踐DBAdapter資料庫的輔助類
操作是創建一個輔助類,它封裝了訪問資料庫的所有復雜性,調用代碼來講它是透明的,所以我創建了一個幫手DBAdapter類,創建,打開,關閉和使用SQLite資料庫它。
首先,在src /文件夾(在本實施例中的src / .learn2develop.Database)下一個DBAdapter.java文件中的溶液。
在DBAdapter.java文件要使用導入所有的命名空間:
- 軟體包.learn2develop.Databases;
中國進口android.content.ContentValues;
進口android.content.Context;
進口android.database.Cursor;
進口android.database.SQLException;
進口android.database.sqlite.SQLiteDatabase;
進口android.database.sqlite .SQLiteOpenHelper;
進口android.util.Log;
公共類DBAdapter
{}

中國接下來,創建一個資料庫,名為bookstitles,如圖所示領域。
中國2資料庫欄位酒店在DBAdapter.java文件,如清單1
文件清單1中定義的常量定義DBAdapter.java不斷
包.learn2develop.Database;

進口android.content.ContentValues;
進口android.content。語境;
進口android.database.Cursor;
進口android.database.SQLException;
進口android.database.sqlite.SQLiteDatabase;
進口android.database.sqlite.SQLiteOpenHelper;
進口android.util.Log;
公共類DBAdapter
{
公共靜態最後弦樂KEY_ROWID = _id;
公共靜態最後弦樂KEY_ISBN = ISBN;
公共靜態最後弦樂KEY_TITLE =稱號;
公共靜態最後弦樂KEY_PUBLISHER =發行;
私有靜態最後字元串變數= DBAdapter;
私有靜態最後弦樂DATABASE_NAME =書籍;
私有靜態最後弦樂DATABASE_TABLE =職稱;
私有靜態最終詮釋DATABASE_VERSION = 1;
私有靜態最後弦樂DATABASE_CREATE =
創建表的標題(_id整數主鍵自動增量,
+ ISBN文本不為空,標題文本不為空,
+出版商文字NOT NULL); ;
私人最終上下文語境;
}

DATABASE_CREATE常數包括標題表創建SQL語句。
在DBAdapter類,你可以擴展SQLiteOpenHelper類,這是一款Android輔助類,主要用於創建資料庫和版本管理。事實上,你可以覆蓋的onCreate()和onUpgrade()方法,如清單2所示清單2.
DBAdapter類,涵蓋了SQLiteOpenHelper的onCreate()和onUpgrade()方法登錄到到網擴展類 - 軟體包.learn2develop.Database;
中國進口的Android。 content.ContentValues;
進口android.content.Context;
進口android.database.Cursor;
進口android.database.SQLException;
進口android.database.sqlite.SQLiteDatabase;
進口android.database.sqlite.SQLiteOpenHelper;
進口android.util.Log;
公共類DBAdapter
{
公共靜態最後弦樂KEY_ROWID = _id;
公共靜態最後弦樂KEY_ISBN = ISBN;
公共靜態最後弦樂KEY_TITLE =稱號;
公共靜態最後弦樂KEY_PUBLISHER =發行;
私有靜態最後字元串變數= DBAdapter;
私有靜態最後弦樂DATABASE_NAME =書籍;
私有靜態最後弦樂DATABASE_TABLE =職稱;
私有靜態最終詮釋DATABASE_VERSION = 1;
私有靜態最後弦樂DATABASE_CREATE =
創建表的標題(_id整數主鍵自動增量,
+ ISBN文本不為空,標題文本不為空,
+出版商文字NOT NULL);;
私人最終上下文語境;
私人DatabaseHelper DBHelper;
私人SQLiteDatabase分貝;
公共DBAdapter(上下文CTX){

this.context = CTX;
DBHelper =新DatabaseHelper(上下文);
}
私有靜態類DatabaseHelper擴展SQLiteOpenHelper
{
DatabaseHelper(上下文環境){

超(背景下,DATABASE_NAME,空,DATABASE_VERSION);
}
覆蓋
公共無效的onCreate(SQLiteDatabase DB){

db.execSQL(DATABASE_CREATE);
}
覆蓋
公共無效onUpgrade(SQLiteDatabase分貝,INT oldVersion,
INT NEWVERSION){

Log.w(TAG,從版本升級資料庫?+ oldVersion
?+到
+ NEWVERSION +,這將銷毀所有舊的數據);
db.execSQL(「DROP TABLE IF EXISTS標題」);
的onCreate(DB);
}}

}

的onCreate()方法創建一個新的資料庫,onUpgrade()方法用於升級資料庫,它可以通過檢查DATABASE_VERSION常數值來定義?實現,為onUpgrade()方法,只是簡單地刪除表,然後只創建一個表。

❽ android 如何導入外部資料庫到應用中

你自己不也都說了
拷貝到資料庫目錄下操作了嗎。。而且你添加表
對資料庫更新,什麼的,當然是直接對資料庫目錄下的db文件操作方便了。更新完後再把data目錄下的資料庫放到assets文件覆蓋原來的。而不是啟動應用程序然後更新資料庫,這樣利用靜態資料庫打包綁定APP更效率。資料庫直接跟隨APP發布了
查看原帖>>

❾ android 除了sqlite還能使用什麼資料庫

android除了sqlite資料庫,還是可以使用mysql資料庫,使用步驟如下:

1. 關閉mysql伺服器的防火牆。
2. 加入MySQL的jdbc包,添加到libs文件夾內。
3.ADT和SDK為16及16以下,17以上的不能訪問。
4.手機和mysq伺服器l互相ping通。
5.添加網路許可權 : <uses-permission Android:name="android.permission.INTERNET" />
6.在Thread中連接訪問mysql,防止ANR。
7.設置mysql允許遠程連接。
代碼如下:

package com.mayi.mysql_test;

import java.sql.DriverManager;
import java.sql.ResultSet;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;

import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;

public class MainActivity extends Activity {

private static final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.select).setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
select();
}
});
}
public void select(){
try{
//調用Class.forName()方法載入驅動程序
Class.forName("org.gjt.mm.mysql.Driver");
System.out.println("成功載入MySQL驅動!");
String url="jdbc:mysql://192.168.1.113:3306/test"; //JDBC的URL
Connection conn;
conn = (Connection) DriverManager.getConnection(url,"mayi","123456");
Statement stmt = (Statement) conn.createStatement(); //創建Statement對象
System.out.println("成功連接到資料庫!");
String sql = "select * from person"; //要執行的SQL
ResultSet rs = stmt.executeQuery(sql);//創建數據對象
System.out.println("編號"+"\t"+"姓名"+"\t"+"年齡");
while (rs.next()){
System.out.print(rs.getInt(1) + "\t");
System.out.print(rs.getString(2) + "\t");
System.out.print(rs.getString(3) + "\t");
System.out.print(rs.getString(4) + "\t");
System.out.println();
}
rs.close();
stmt.close();
conn.close();
}catch(Exception e)
{
Log.e(TAG, e.getMessage());
e.printStackTrace();
}
}
}

❿ Android如何導入已有的外部資料庫(在raw下自己導入db文件)

操作方法是用FileInputStream讀取原資料庫,再用 FileOutputStream把讀取到的東西寫入到那個目錄。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 packagecom.android.ImportDatabase; importjava.io.File; importjava.io.FileNotFoundException; importjava.io.FileOutputStream; importjava.io.IOException; importjava.io.InputStream; importandroid.content.Context; importandroid.database.sqlite.SQLiteDatabase; importandroid.os.Environment; importandroid.util.Log; publicclassDBManager { privatefinalintBUFFER_SIZE =400000; publicstaticfinalString DB_NAME ="countries.db";//保存的資料庫文件名 publicstaticfinalString PACKAGE_NAME ="com.android.ImportDatabase"; publicstaticfinalString DB_PATH ="/data" + Environment.getDataDirectory().getAbsolutePath() +"/" + PACKAGE_NAME; //在手機里存放資料庫的位置 privateSQLiteDatabase database; privateContext context; DBManager(Context context) { this.context = context; } publicvoidopenDatabase() { this.database =this.openDatabase(DB_PATH +"/"+ DB_NAME); } privateSQLiteDatabase openDatabase(String dbfile) { try{ if(!(newFile(dbfile).exists())) { //判斷資料庫文件是否存在,若不存在則執行導入,否則直接打開資料庫 InputStream is =this.context.getResources().openRawResource( R.raw.countries);//欲導入的資料庫 FileOutputStream fos =newFileOutputStream(dbfile); byte[] buffer =newbyte[BUFFER_SIZE]; intcount =0; while((count = is.read(buffer)) >0) { fos.write(buffer,0, count); } fos.close(); is.close(); } SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(dbfile, null); returndb; }catch(FileNotFoundException e) { Log.e("Database","File not found"); e.printStackTrace(); }catch(IOException e) { Log.e("Database","IO exception"); e.printStackTrace(); } returnnull; } ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 packagecom.android.ImportDatabase; importjava.util.ArrayList; importandroid.app.Activity; importandroid.database.Cursor; importandroid.database.sqlite.SQLiteDatabase; importandroid.os.Bundle; { privateSQLiteDatabase database; ArrayList<CityClass> CITY; @Override publicvoidonCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); database = SQLiteDatabase.openOrCreateDatabase(DBManager.DB_PATH +"/"+ DBManager.DB_NAME,null); CITY = getCity(); // do something with CITY database.close(); } privateArrayList<CityClass> getCity() { Cursor cur = database.rawQuery("SELECT city.id_city, city.name FROM taxi, city WHERE city.id_city = taxi.id_city GROUP BY city.id_city",null); if(cur !=null) { intNUM_CITY = cur.getCount(); ArrayList<CityClass> taxicity =newArrayList<CityClass>(NUM_CITY); if(cur.moveToFirst()) { do{ String name = cur.getString(cur.getColumnIndex("name")); intid = cur.getInt(cur.getColumnIndex("id_city")); CityClass city =newCityClass("",0); System.out.println(name); //額外添加一句,把select到的信息輸出到Logcat city.city_name = name; city.city_id = id; taxicity.add(city); }while(cur.moveToNext()); } returntaxicity; }else{ returnnull; } } } 查看輸出的結果:

閱讀全文

與android使用外部資料庫相關的資料

熱點內容
90版本女漫遊技能視頻 瀏覽:470
本地pm25數據來自哪裡 瀏覽:14
安裝ps沒有找到adobe文件 瀏覽:339
密碼查看器哪個好 瀏覽:482
文件發到中轉站在哪裡找 瀏覽:608
net連接字元串在哪個文件中 瀏覽:296
文件夾怎麼發QQ 瀏覽:521
文件夾鎖頭 瀏覽:145
迪士尼在哪個網站買票 瀏覽:329
gho文件如何轉成iso文件下載 瀏覽:650
安卓隱藏運行程序圖標 瀏覽:849
數控車床編程和磨刀哪個難學 瀏覽:158
win10綁定賬號正版 瀏覽:861
計算機網路實驗系統 瀏覽:656
符號表文件格式pdb 瀏覽:623
聯想win10怎麼做bat文件 瀏覽:611
手機編程軟體哪個好處 瀏覽:49
信號與系統視頻教程哪個好 瀏覽:366
51aspx下載的源碼要打開那些文件 瀏覽:221
自家的網路被改了怎麼辦 瀏覽:151

友情鏈接