一尘不染

OLEDB参数化查询

c#

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中。它发现列名很好,但是内容为空。

如何解决此问题?


阅读 399

收藏
2020-05-19

共1个答案

一尘不染

在我的测试程序中,ds.Tables [0]
.Rows.Count数据表实际上返回了1行(因为我的测试数据库中有一行与查询本身匹配)。如果您在这条线上中断了,您应该首先可以查看数据是否进入数据表。尝试这个:

dataGridView1.DataSource = ds.Tables[0];

dataGridView1的前端绑定是什么样的?在Access中运行查询也可以对情况有所了解。

2020-05-19