C#数据库连接和datagridview

use*_*255 2 c# database odbc datagridview

我最近开始在C#中使用数据库,但我不知道什么!在Visual Studio 2008中,我启动了一个新项目,向表单添加了一个datagridview,并在form_load上放了这段代码:

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;
Run Code Online (Sandbox Code Playgroud)

当我运行它时,表单会打开,但在datagridview中没有数据!我该怎么办?

Jef*_*ata 5

DataSet可以包含多个DataTable.您可以将DataGridView的数据源设置为DataSet中的特定表,或者只使用DataTable:

DataTable table = new DataTable();
dadapter.Fill(table);
con.Close();
this.dataGridView1.DataSource = table;
Run Code Online (Sandbox Code Playgroud)

另外,您可以使用它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;
}
Run Code Online (Sandbox Code Playgroud)