привет, я пытаюсь получить лист excel из любого места на компьютере, и всякий раз, когда кто-то просматривает и выбирает лист excel, я хочу, чтобы его имена столбцов были указаны в поле со списком. До сих пор у меня был сложный код, и я все еще получаю небольшую ошибку: «Механизм базы данных Microsoft Access не смог найти столбцы объекта». Убедитесь, что объект существует, и вы правильно указали его имя и имя пути. «columns» не является локальным объектом, проверьте сетевое подключение или обратитесь к администратору сервера « Но я успешно реализую тот же код в базе данных SQL Server. эта ошибка возникает только тогда, когда я пытаюсь получить доступ к листу Excel. почему эта ошибка приходит и как ее исправить? Спасибо.Как получить имена столбцов excel в поле со списком C#?
private String openfile()
{
string tempPath = "";
OpenFileDialog fDialog = new OpenFileDialog();
fDialog.Title = "open MSexcel file ";
fDialog.Filter = "All Files(*.*)|*.*";
fDialog.InitialDirectory = @"C:\";
if (fDialog.ShowDialog() == DialogResult.OK)
{
tempPath = fDialog.FileName;
return tempPath;
}
return null;
}
private void openpath(string path)
{
newconn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source="
+ Convert.ToString(path) + ";Extended Properties=\"Excel 12.0;HDR={1}\";");
}
private void loadtolist()
{
newconn.Open();
cmb.Items.Clear(); //cmb is combo box name
newcmd = new OleDbCommand();
newcmd.Connection = newconn;
newcmd.CommandType = CommandType.Text;
newcmd.CommandText = "SELECT column_name from information_schema.columns where table_name = 'BigData' Order by ordinal_position";
dr = newcmd.ExecuteReader();
if (dr.HasRows)
{
while (dr.Read())
{
cmb.Items.Add(dr[0].ToString());
}
}
dr.Close();
newconn.Close();
}