我试图将数据插入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);
}
答案 0 :(得分:2)
我认为它出现在Jet Provider的连接字符串中。
http://www.connectionstrings.com/excel
连接字符串有n个名为HDR的属性。如果添加“HDR = Yes;”连接字符串应指示第一行包含列名,这应该可以解决您的问题。
答案 1 :(得分:-1)
根据我的个人经验,我注意到当列名未在括号" []"中表示时,它不允许保存在Excel中,也就是说它会......({{ 1}},[To]
,[Message]
)。