【发布时间】:2013-02-25 15:28:08
【问题描述】:
我正在使用以下代码访问 MS Access 数据库。但是我收到一条错误消息 Fill: SelectCommand.Connection property has not been initialized.我该如何解决这个问题。
common.cs
=========
public static bool DBConnectionStatus()
{
try
{
string conString = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=|DataDirectory|db_admin.mdb; Jet OLEDB:Database Password=admin";
using (OleDbConnection conn = new OleDbConnection(conString))
{
conn.Open();
return (conn.State == ConnectionState.Open);
}
}
catch (OleDbException)
{
return false;
}
protected void btn_general_Click(object sender, EventArgs e)
{
try
{
bool state = common.DBConnectionStatus();
if (state == true)
{
cmd = new OleDbCommand("select * from tbl_admin");
da = new OleDbDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds); // Error Here
if (ds.Tables[0].Rows.Count > 0)
{
}
}
}
catch (Exception e1)
{
}
}
【问题讨论】:
-
using将释放/关闭连接,因此DBConnectionStatus方法毫无意义。 -
还有一件事是您必须将连接分配给命令对象。