Синтаксическая ошибка при вставке на лист excel

Я пытался вставить данные во второй лист в файле excel, но это дает синтаксическую ошибку. Я попытался вставить с тем же синтаксисом в лист 1, и он работал нормально. Имя листа правильное, имена столбцов правильные. Мой код

try
{
    System.Data.OleDb.OleDbConnection MyConnection;
    System.Data.OleDb.OleDbCommand myCommand = new System.Data.OleDb.OleDbCommand();
    string sql = null;
    MyConnection = new System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source='d:\\contacts_moorthy.xls';Extended Properties=Excel 8.0;");
    MyConnection.Open();
    myCommand.Connection = MyConnection;
    sql = "insert into [Sheet2$] (To,Message,SentOn) values ('" + phonetxtbox.Text + "','" + messagetxtbox.Text + "','"+DateTime.Now+"')";
    myCommand.CommandText = sql;
    myCommand.ExecuteNonQuery();
    MyConnection.Close();
}
catch (Exception ex)
{
     MessageBox.Show("Error :",ex);
}

person Rathinamoorthy    schedule 18.10.2012    source источник
comment
Можете ли вы поделиться своей настройкой подключения?   -  person kdmurray    schedule 18.10.2012
comment
Почему вы не используете интерфейс автоматизации Excel вместо подхода SQL? См., например, support.microsoft.com/kb/302084   -  person Reinier Torenbeek    schedule 18.10.2012
comment
@kdmurray я также добавил соединение .. пожалуйста, помогите   -  person Rathinamoorthy    schedule 18.10.2012
comment
@ReinierTorenbeek я новенький. я работал с этими кодами. Конечно, я попробую тот, который вы упомянули   -  person Rathinamoorthy    schedule 18.10.2012
comment
Я получил ответ. Если я не укажу имена столбцов (To, Message, SentOn), он работает. Я не знаю, почему это не работает с именами, но имена точны.   -  person Rathinamoorthy    schedule 18.10.2012


Ответы (2)


Я думаю, что это в вашей строке подключения для Jet Provider.

http://www.connectionstrings.com/excel

Строка подключения имеет атрибут n с именем HDR. Если вы добавите «HDR=Да;» к вашей строке подключения должно указывать, что первая строка содержит имена столбцов, которые должны решить вашу проблему.

person wretchedz0rz    schedule 18.10.2012

На личном опыте заметил, что не позволяет сохранить в Excel, когда имена столбцов не указаны в скобках "[]", то есть было бы... ([To], [Message], [SentOn]).

person LAZZ    schedule 31.08.2017