C # - OleDBDataAdapter.Fill (DataSet) выдает «Не задано значение для одного или нескольких обязательных параметров». - PullRequest
0 голосов
/ 10 декабря 2018

У меня есть следующий код для доступа к файлу .xlsx и получения листа с именем «Sheet1» в виде таблицы.Затем я выбираю значения для URL и имени пользователя с помощью команды выбора.

string strPath = @"C:\Users\...\TestData.xlsx";
string strExcelConn = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + strPath + ";Extended Properties=\"Excel 12.0 Xml;HDR=No;IMEX=1\";");
OleDbConnection connExcel = new OleDbConnection(strExcelConn);
try
{
    connExcel.Open();
    DataTable dtExcelSchema = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
    string SheetName = dtExcelSchema.Rows[0]["TABLE_NAME"].ToString();

    OleDbCommand cmdExcel = new OleDbCommand("SELECT URL, Username From [" + SheetName + "]",connExcel);

    DataSet ds = new DataSet();

    OleDbDataAdapter da = new OleDbDataAdapter("SELECT URL, Username From [" + SheetName + "]", strExcelConn);
    cmdExcel.CommandText = "SELECT URL, Username From [" + SheetName + "]";
    Console.WriteLine(cmdExcel.CommandText);

    da.Fill(ds);
    connExcel.Close();
}
catch (Exception e)
{
    Console.WriteLine(e.Message);
    connExcel.Close();
}

К сожалению, я получаю следующую ошибку при заполнении данных адаптера.

da.Fill(ds);

Ошибка говорит

Message: System.Data.OleDb.OleDbException : No value given for one or more required parameters.

Может ли кто-нибудь помочь мне найти решение для этого?

1 Ответ

0 голосов
/ 11 декабря 2018

Проблема была только тогда, когда я пытался выбрать конкретные столбцы.Если у меня есть Выберите * из , он работает нормально.

Но, хотя и не уверен насчет фактической проблемы.

...