【发布时间】:2013-07-17 22:26:09
【问题描述】:
这是我之前提出的一个问题的延伸。我正在尝试执行 SQL 查询并在 DataGridView 中显示结果,但即使我将数据源分配给查询结果并将 AutoGenerateColumns 设置为 true,查看器中也没有显示任何内容。知道缺少什么吗?
private void Query()
{
const string ConnectionPath = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=RetentionDB.mdb";
try
{
using (var cn = new OleDbConnection(ConnectionPath))
using (var cmd = new OleDbCommand("SELECT * FROM RetentionTable WHERE Center = ?", cn))
{
// Parameter names don't matter; OleDb uses positional parameters.
cmd.Parameters.AddWithValue("@p0", getCenter(""));
var objDataSet = new DataSet();
var objDataAdapter = new OleDbDataAdapter(cmd);
objDataAdapter.Fill(objDataSet);
dataOutput.AutoGenerateColumns = true;
dataOutput.DataSource = objDataSet;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
MessageBox.Show(ex.StackTrace.ToString());
}
}
感谢 Richard Deeming 迄今为止帮助我编写代码。
p.s 我环顾四周,看到了很多关于此的问题,但似乎没有一个适用(至少我发现)
【问题讨论】:
-
SELECT * FROM RetentionTable WHERE Center = ?是什么意思? -
这只是对 SQL Query 的测试。在“使用”部分,@p0 调用 getCenter() 函数,该函数返回一个字符串并在第一个问号实例处注入 SQL。