gpt4 book ai didi

c# - 在C#中执行SQL命令并将结果输出到DataGridView

转载 作者:行者123 更新时间:2023-11-30 20:56:08 25 4
gpt4 key购买 nike

我正在尝试使用 C# 通过 OleDbConnection 在 Access 数据库上执行 SQL 命令,并使用该信息填充 Windows 窗体上的 DataGridView。我打开了连接,声明了查询并执行了它,但我找不到如何将结果输出到 Windows 窗体(名为 dataOutput)上的 DataGridView。

    private void Query()
{
string cmdText = "SELECT * FROM RetentionTable " +
"WHERE [DateTime] BETWEEN '" + getDateTimeFrom("") + "' AND '" + getDateTimeTo("") + "'";

string ConnectionPath = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=RetentionDB.mdb";

try
{
OleDbConnection cn = new OleDbConnection(ConnectionPath);
DataSet objDataSet = new DataSet();
OleDbDataAdapter objDataAdapter = new OleDbDataAdapter();

if (cn.State.Equals(ConnectionState.Closed))
{
cn.Open();
}

OleDbCommand OleDbSearch = new OleDbCommand(cmdText, cn);
OleDbSearch.ExecuteNonQuery();

objDataAdapter.Fill(objDataSet);
dataOutput.DataSource = objDataSet;
cn.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
MessageBox.Show(ex.StackTrace.ToString());
}

}

据我所知,查询正在正确执行,但在尝试使用 objDataAdapter.Fill 时出现问题。我想我不明白如何用查询的输出填充数据集。任何帮助将非常感激。谢谢!

最佳答案

替换为ExecuteDataSet方法

..
OleDbSearch.ExecuteDataSet();
objDataAdapter.Fill(objDataSet);
dataOutput.DataSource = objDataSet;
...

我建议你在使用 blok 时设置你的紧密连接,或者尝试在你的 try catch 中使用 Finally

最佳实践

 using( var cn = new OleDbConnection(ConnectionPath))
{
...
}

关于c# - 在C#中执行SQL命令并将结果输出到DataGridView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17707267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com