2015-12-07 80 views
1

我使用UI將數據源添加到我的項目。如何使用我創建的數據集在VS2015中使用

數據源被列爲serverManagerDBDataSet,當你打開三角形,它說:「serverManagerTable」,當你打開三角形的,你在表中看到

我的問題是該領域怎麼用這個我的項目中的數據源(正確)?

string constr = @"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + dbPath; 
string cmdstr = "select * from serverManagerTable"; 
OleDbConnection con = new OleDbConnection(constr); 
OleDbCommand com = new OleDbCommand(cmdstr, con); 
con.Open(); 
OleDbDataReader reader = com.ExecuteReader(); 
reader.Read(); 
DataSet data = new DataSet(); 
OleDbDataAdapter da = new OleDbDataAdapter(com); 
da.Fill(data); 
int i = data.Tables[0].Rows.Count; 
MessageBox.Show(i.ToString()); 

我得到一個錯誤說連接已經打開

回答

1

你在一個連接如執行兩個不同的閱讀機制。第一步是取出ExecuteReaderRead線:

string constr = @"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + dbPath; 
string cmdstr = "select * from serverManagerTable"; 
OleDbConnection con = new OleDbConnection(constr); 
OleDbCommand com = new OleDbCommand(cmdstr, con); 
con.Open(); 
//OleDbDataReader reader = com.ExecuteReader(); 
//reader.Read(); 
DataSet data = new DataSet(); 
OleDbDataAdapter da = new OleDbDataAdapter(com); 
da.Fill(data); 
int i = data.Tables[0].Rows.Count; 
MessageBox.Show(i.ToString()); 

然後換你的數據庫類中using聲明:

string constr = @"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + dbPath; 
string cmdstr = "select * from serverManagerTable"; 
DataSet data = new DataSet(); 

using(OleDbConnection con = new OleDbConnection(constr)) 
using(OleDbCommand com = new OleDbCommand(cmdstr, con)) 
{ 
    con.Open(); 
    using(OleDbDataAdapter da = new OleDbDataAdapter(com)) 
     da.Fill(data); 
} 
int i = data.Tables[0].Rows.Count; 
MessageBox.Show(i.ToString()); 

using語句確保您的連接是否及時,如果關閉有一個異常加載數據。

要回答這個問題的稱號,不過,我假設你應該使用serverManagerDBDataSet,而不是一個簡單的DataSet

+0

代碼所做的工作,但不知道爲什麼嚮導創建這些「服務器管理器組件」工具箱 –

+0

老實說,我沒有使用過多年的類型化數據集,所以我沒有很好的答案。我知道,儘早他們被視爲可重用的「組件」,但這在很大程度上已經與實體框架。 –

相關問題