簡體   English   中英

從本地Sql Compact數據庫更新強類型數據集

[英]Updating strongly typed Dataset from local Sql Compact database

我使用Visual Studio 2010 Express創建了一個帶有幾個表和關系的Sql Compact數據庫(sdf文件)。 從該數據庫中,我生成了一個強類型的數據集。

現在,我想用數據庫中的內容填充數據集。 因此,我使用以下代碼連接到數據庫並填充了數據集。

//My strongly typed dataset
localData = new LokalStorageDataSet();

//SqlCe-Connection
localConnection = new SqlCeConnection(@"Data Source=|DataDirectory|\TempStorage.sdf; Password='xyc';Persist Security Info=True");

localConnection.Open();
SqlCeCommand command = new SqlCeCommand("SELECT * FROM progstates", localConnection);
localDataAdapter = new SqlCeDataAdapter(command);

localDataAdapter.Fill(localData);

問題是,盡管數據庫中有行,但沒有行添加到我的數據集中。 如果我使用SqlCeReader讀取SqlCeCommand的結果,則讀取器將返回以下行:

SqlCeDataReader dr = command.ExecuteReader();

        while (dr.Read())
        {
          ...
        }

您能告訴我為什么我的數據集無法從數據集中的表中獲取行的原因嗎?

編輯:我看到在我的數據集中創建了一個名為“表”的新數據表,具有與我請求的列相同的列(progstate),但該數據表的rowCount為0。

EDITED *****

Try This :-

//My strongly typed dataset
localData = new LokalStorageDataSet();

//SqlCe-Connection
localConnection = new SqlCeConnection(@"Data Source=|DataDirectory|\TempStorage.sdf; Password='xyc';Persist Security Info=True");


SqlCeCommand command = new SqlCeCommand("SELECT * FROM progstates", localConnection);

localConnection.Open();

var dataReader = command.ExecuteReader();

localData.Load(dataReader,LoadOption.Upsert,localData.Tables[0]);

localConnection.Close();

或者您不能使用DataAdapter這樣執行此操作:

localDataAdapter = new SqlCeDataAdapter();

SqlCeCommand command = new SqlCeCommand("SELECT * FROM progstates", localConnection);

localDataAdapter.SelectCommand = command;

localConnection.Open();

localDataAdapter.SelectCommand.ExecuteNonQuery();
localDataAdapter.Fill(localData.Tables[0]);

localConnection.Close();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM