【发布时间】:2012-08-16 09:39:43
【问题描述】:
public void LoadDB()
{
string FileName = @"c:\asdf.accdb";
string query = "SELECT ID, Field1 FROM Table1 WHERE ID=? AND Field1=?";
string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + FileName;
OleDbConnection odc = new OleDbConnection(strConn);
dAdapter = new OleDbDataAdapter();
OleDbCommand cmd = new OleDbCommand(query,odc);
cmd.Parameters.Add("?", OleDbType.Integer, 5).Value = 1234;
cmd.Parameters.Add("?", OleDbType.BSTR, 5).Value ="asdf";
dAdapter.SelectCommand = cmd;
ds = new DataSet();
dAdapter.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
}
我正在尝试使用参数化查询将访问文件绑定到 datagridview。它发现列名很好,但内容是空的。
我该如何解决这个问题?
【问题讨论】:
-
当您从 Access 手动运行并输入以上给定参数时,您是否查询返回行?
-
您的第一个参数是整数,但您将其设置为字符串。
-
@BishnuPaudel 对不起,你能澄清一下吗?我不确定我是否理解你的问题。我所知道的是,如果我使用 OleDBCommandBuilder 而不是参数化查询,那么整个事情都会完美运行。
-
@LarsTech 已修复。还是不行。
-
考虑使用您的 sql 和两个参数字段在 Access 中创建一个查询,然后调用该查询而不是传递 sql
标签: c# .net winforms ms-access oledb