程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 操作 SQL Server Mobile 2005 數據庫的常用 C# 代碼

操作 SQL Server Mobile 2005 數據庫的常用 C# 代碼

編輯:關於C語言

整理幾段操作 SQL(SQL Server培訓 MySQL培訓 ) Server Mobile 數據庫(數據庫培訓 數據庫認證 )的常用 C#(C#培訓 ) 代碼,供剛剛接觸 SQL Server Mobile 開發的朋友參考。

1. 創建數據庫

// 創建數據庫

File.Delete(\"Test.sdf\");

SqlCeEngine engine = new SqlCeEngine(

\"Data Source='Test.sdf';LCID=1033;PassWord=\\"s$;2'!dS64\\";Encrypt=TRUE;\");

engine.CreateDatabase();

2. 驗證和修復數據庫

// 驗證和修復數據庫

SqlCeEngine engine = new SqlCeEngine(\"Data Source=AdventureWorks.sdf\");

if (false == engine.Verify())

{

MessageBox.Show(\"Database is corrupted.\");

engine.Repair(null, RepairOption.RecoverCorruptedRows);

}

3. 壓縮數據庫

// 壓縮數據庫

// 通過從現有文件新建數據庫文件來回收 SQL Server Mobile 數據庫中浪費的空間。

// 此方法還可用來更改數據庫的排序順序、加密或密碼設置。

// 該連接字符串指定一個指向將由此方法創建的目標數據庫的連接。

// 如果指定的數據庫已經存在或者具有相同名稱的另一文件已經存在,則會引發異常。

// 如果為連接字符串傳遞空字符串,則新的數據庫文件將改寫舊的數據庫文件,

// 但名稱保持不變。

SqlCeEngine engine = new SqlCeEngine(\"Data Source=AdventureWorks.sdf\");

//engine.Compact(null);

engine.Compact(\"Data Source=; PassWord=a@3!7f$dQ;\");

4. 收縮數據庫

// 收縮數據庫

// 通過將空頁移動到文件的結尾然後截斷該文件,

// 來回收 SQL Server Mobile 數據庫中浪費的空間。

// 與 Compact 方法不同,Shrink 方法不創建臨時數據庫文件,

// 而是將所有空頁和未分配的頁都移到了文件的結尾,然後截斷,從而減小數據庫的總大小。

SqlCeEngine engine = new SqlCeEngine(\"Data Source=AdventureWorks.sdf\");

engine.Shrink();

5. 合並復制

// 合並復制

// 實例化並配置 SqlCeReplication 對象

SqlCeReplication repl = new SqlCeReplication();

repl.InternetUrl = \"http://www.adventure-works.com/sqlmobile/sqlcesa30.dll\";

repl.InternetLogin = \"MyInternetLogin\";

repl.InternetPassWord = \"\";

repl.Publisher = \"MyPublisher\";

repl.PublisherDatabase = \"MyPublisherDatabase\";

repl.PublisherLogin = \"MyPublisherLogin\";

repl.PublisherPassWord = \"\";

repl.Publication = \"MyPublication\";

repl.Subscriber = \"MySubscriber\";

repl.SubscriberConnectionString = \"Data Source=MyDatabase.sdf\";

// 創建一個本地 SQL Server Mobile 數據庫的訂閱

repl.AddSubscription(AddOption.CreateDatabase);

// 跟 SQL Server 數據庫進行同步

repl.Synchronize();

// 清理 repl 對象

repl.Dispose();

6. 遠程數據訪問(RDA)

// 遠程數據訪問

// 實例化並配置 SqlCeRemoteDataAccess 對象

SqlCeRemoteDataAccess rda = new SqlCeRemoteDataAccess();

rda.InternetUrl = \"http://www.adventure-works.com/sqlmobile/sqlcesa30.dll\";

rda.InternetLogin = \"MyInternetLogin\";

rda.InternetPassWord = \"\";

rda.LocalConnectionString = \"Data Source=MyDatabase.sdf\";

// 從 SQL Server 下載數據

rda.Pull(

\"Employees\",

\"SELECT * FROM DimEmployee\",

\"Provider=sqloledb;server=MySQLServer;database=AdventureWorks;uid=sa;pwd=;\",

RdaTrackOption.TrackingOnWithIndexes,

\"ErrorTable\");

//

// 修改本地數據

//

// 將已修改的數據上傳到 SQL(SQL Server培訓 MySQL培訓 ) Server

rda.Push(

\"DimEmployee\",

\"Provider=sqloledb;server=MySQLServer;database=AdventureWorks;uid=sa;pwd=;\");

// 提交 SQL 語句在 SQL Server 上執行

rda.SubmitSql(

\"CREATE TABLE MyRemoteTable (colA int)\",

\"Provider=sqloledb;server=MySQLServer;database=AdventureWorks;uid=sa;pwd=;\"); http://www.mscto.com

7. 使用 SqlCeResultSet

// 使用 SqlCeResultSet

// 創建 SQL Server Mobile 數據庫(數據庫培訓 數據庫認證 )連接

SqlCeConnection conn = new SqlCeConnection(\"Data Source=Northwind.sdf\"); http://www.mscto.com

// 創建並配置 SqlCeCommand 對象

SqlCeCommand cmd = conn.CreateCommand();

cmd.CommandText = \"SELECT * FROM Orders\";

// 創建 SqlCeResultSet 對象,並配置為可滾動、可更新、檢測數據源更改

ResultSetOptions options = ResultSetOptions.Scrollable |

ResultSetOptions.Sensitive |

ResultSetOptions.Updatable;

SqlCeResultSet resultSet = cmd.ExecuteResultSet(options);

// 創建 ResultSetVIEw 對象,配置為只顯示序號為 1,3,5,8 的列

ResultSetView resultSetView = resultSet.ResultSetVIEw;

int[] ordinals = new int[] { 1,3,5,8};

resultSetVIEw.Ordinals = ordinals;

// 將 ResultSetVIEw 綁定到 DataGrid 控件

this.dataGrid.DataSource = resultSetVIEw;

8. 處理 SqlCeException

// 處理 SqlCeException

public static void ShowErrors(SqlCeException e)

{

SqlCeErrorCollection errorCollection = e.Errors;

StringBuilder bld = new StringBuilder();

Exception inner = e.InnerException;

foreach (SqlCeError err in errs)

{

// 標識錯誤類型的 HRESULT 值,這些錯誤不是 SQL Server CE 固有的

bld.Append(\"\r\nError Code: \").Append(err.HResult.ToString(\"X\"));

// 對錯誤進行描述的文本

bld.Append(\"\r\nMessage: \").Append(err.Message);

// 獲取 SqlCeError 的本機錯誤號

bld.Append(\"\r\nMinor Err.: \").Append(err.NativeError);

// 生成錯誤的提供程序的名稱

bld.Append(\"\r\nSource: \").Append(err.Source);

// 遍歷前三個錯誤參數。SQL Server CE 使用錯誤參數來提供有關錯誤的其他詳細信息。

foreach (int numPara in err.NumericErrorParameters)

{

// 雖然錯誤可能存在參數,但並非發生的所有錯誤都返回參數。

// 如果發生某個錯誤時沒有返回任何參數,則該數組的值為 0。

if (numPara != 0)

{

bld.Append(\"\r\nNum. Par.: \").Append(numPara);

}

}

// 遍歷最後三個錯誤參數。SQL Server CE 使用錯誤參數來提供有關錯誤的其他詳細信息。

foreach (string errPara in err.ErrorParameters)

{

// 雖然錯誤可能存在參數,但並非發生的所有錯誤都返回參數。

// 如果發生某個錯誤時沒有返回任何參數,則該數組的值將為空字符串。

if (errPara != String.Empty)

{

bld.Append(\"\r\nErr. Par.: \").Append(errPara);

}

}

} http://www.mscto.com

MessageBox.Show(bld.ToString());

}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved