插入Excel工作表时出现语法错误

时间:2012-10-18 06:01:04

标签: c# .net excel excel-interop

我试图将数据插入excel文件中的第二个工作表,但它会出现语法错误。我尝试在sheet1中使用相同的语法插入,它工作正常。工作表名称正确,列名称正确。 我的代码是

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);
}

2 个答案:

答案 0 :(得分:2)

我认为它出现在Jet Provider的连接字符串中。

http://www.connectionstrings.com/excel

连接字符串有n个名为HDR的属性。如果添加“HDR = Yes;”连接字符串应指示第一行包含列名,这应该可以解决您的问题。

答案 1 :(得分:-1)

根据我的个人经验,我注意到当列名未在括号" []"中表示时,它不允许保存在Excel中,也就是说它会......({{ 1}},[To][Message])。