gpt4 book ai didi

c# - 创建数据库查询方法

转载 作者:太空狗 更新时间:2023-10-29 20:44:53 25 4
gpt4 key购买 nike

我不确定是否分散,但我想做的是创建一个将返回查询结果的方法,以便我可以重用连接代码。据我了解,查询返回一个对象,但是如何将该对象传递回去呢?我想将查询作为字符串参数发送到方法中,并让它返回结果,以便我可以使用它们。这就是我在黑暗中刺伤的东西,显然不起作用。这个例子是我试图用查询结果填充一个列表框。工作表名称为员工,字段/列为名称。我得到的错误是“复杂数据绑定(bind)接受IList或IListSource作为数据源。”。有任何想法吗?

 public Form1()
{
InitializeComponent();
openFileDialog1.ShowDialog();
openedFile = openFileDialog1.FileName;

lbxEmployeeNames.DataSource = Query("Select [name] FROM [Employees$]");


}

public object Query(string sql)
{
System.Data.OleDb.OleDbConnection MyConnection;
System.Data.OleDb.OleDbCommand myCommand = new System.Data.OleDb.OleDbCommand();
string connectionPath;

//build connection string
connectionPath = "provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + openedFile + "';Extended Properties=Excel 8.0;";

MyConnection = new System.Data.OleDb.OleDbConnection(connectionPath);
MyConnection.Open();
myCommand.Connection = MyConnection;

myCommand.CommandText = sql;
return myCommand.ExecuteNonQuery();


}

最佳答案

嘿!尝试这个,
如果您只想将所有员工的姓名显示在listBox中,则应该可以使用。
我刚刚从您的代码中编辑了几行...

Form1()
{
InitializeComponent();
openFileDialog1.ShowDialog();
openedFile = openFileDialog1.FileName;

lbxEmployeeNames.DataSource = Query("Select [name] FROM [Employees$]");
lbxEmployeeNames.DisplayMember = "name"; // The column you want to be displayed in your listBox.
}

// Return a DataTable instead of String.
public DataTable Query(string sql)
{
System.Data.OleDb.OleDbConnection MyConnection;
string connectionPath;

//build connection string
connectionPath = "provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + openedFile + "';Extended Properties=Excel 8.0;";

MyConnection = new System.Data.OleDb.OleDbConnection(connectionPath);
MyConnection.Open();
System.Data.OleDb.OleDbDataAdapter myDataAdapter = new System.Data.OleDb.OleDbDataAdapter(sql, MyConnection);
DataTable dt = new DataTable();
myDataAdapter.Fill(dt);
return dt;
}

关于c# - 创建数据库查询方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4002323/

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