1

我试图将数据插入到 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);
}
4

2 回答 2

2

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

http://www.connectionstrings.com/excel

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

于 2012-10-18T20:54:41.350 回答
-1

根据我的个人经验,我注意到当列名未在括号“[]”中指示时,它不允许在 Excel 中保存,也就是说它将是...([To]、、、[Message][SentOn]

于 2017-08-31T21:49:33.793 回答