Я не уверен, что я сделал это, но я хотел бы создать метод, который будет возвращать результаты запроса, чтобы я мог повторно использовать соединение код. Насколько я понимаю, запрос возвращает объект, но как мне передать этот объект обратно? Я хочу отправить запрос в метод в виде строкового аргумента и получить результаты, чтобы я мог их использовать. Вот что у меня было ударом в темноте, это явно не работает. В этом примере я пытаюсь заполнить список результатами запроса; имя листа - Сотрудники, а поле / столбец - имя. Я получаю ошибку: «Комплексная привязка данных принимает в качестве источника данных либо 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();
}