2011-03-21 66 views
2

我最近開始使用C#數據庫,但我沒有搞清楚的東西! 在Visual Studio 2008年,我開始了一個新的項目,添加一個DataGridView到窗體,並在的Form_Load我把這個代碼:C#數據庫連接和datagridview的

string strCon = @"Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=C:\Users\User\Desktop\Numeratori.accdb;"; 
string strSql = "select * from tabela"; 
OdbcConnection con = new OdbcConnection(strCon); 
con.Open(); 
OdbcDataAdapter dadapter = new OdbcDataAdapter(); 
dadapter.SelectCommand = new OdbcCommand(strSql, con); 
DataSet dset = new DataSet(); 
dadapter.Fill(dset); 
con.Close(); 
this.dataGridView1.DataSource = dset; 

當我運行它的形式打開了,但在DataGridView沒有數據! 我該怎麼辦?

回答

5

數據集可以包含多個數據表。你可以在DataGridView的數據源設置爲特定表中的數據集,或只使用一個數據表:

DataTable table = new DataTable(); 
dadapter.Fill(table); 
con.Close(); 
this.dataGridView1.DataSource = table; 

在一個側面說明,您可以使用using幫助清理資源:

string strCon = @"Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=C:\Users\User\Desktop\Numeratori.accdb;"; 
string strSql = "select * from tabela"; 

using (OdbcConnection con = new OdbcConnection(strCon)) 
using (OdbcDataAdapter dadapter = new OdbcDataAdapter(strSql, con)) 
{ 
    DataTable table = new DataTable(); 
    dadapter.Fill(table); 

    this.dataGridView1.DataSource = table; 
} 
+0

日Thnx的答案:D只是嘗試這樣做,但仍是同樣的問題在DataGridView是空的:\ – user670255 2011-03-21 22:40:45

+0

@ user670255,嗯...這應該工作。只是爲了檢查,你確定該表中有數據嗎?如果你在設置'dataGridView1.DataSource = table;'的行放置了一個斷點,那麼'table'中是否有數據? – 2011-03-21 22:57:19

+0

是的!我在ms訪問中創建了列,並在行中添加了一些數據!我也試圖不從形式負載,但通過單擊按鈕做到這一點,現在我想出了一個錯誤:ERROR [IM002] [微軟]找不到[ODBC驅動程序管理器]數據源名稱並沒有指定默認驅動程序 – user670255 2011-03-21 23:12:14

0
 SqlConnection sql_connect = new SqlConnection(); 
     SqlCommand sql_command = new SqlCommand(); 
     string connetionString = @"server=ALI-LAP\SQLEXPRESSR2;Trusted_Connection=yes;database=XXX;"; 

     SqlDataAdapter sql_ada = new SqlDataAdapter(); 
     DataTable dt = new DataTable(); 

       sql_connect.ConnectionString = connetionString; 
       sql_command.Connection = sql_connect; 
       sql_command.CommandText = "SELECT * FROM XXX"; 

       sql_ada.SelectCommand = sql_command; 
       sql_ada.Fill(dt); 

       dataGridView.DataSource = dt;