插入到Excel表格中的语法错误

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

我认为这是你的Jet Provider的连接string。

http://www.connectionstrings.com/excel

连接string有n个属性,称为HDR。 如果添加“HDR =是” 到你的连接string应该表明第一行包含列名,这应该可以解决你的问题。

根据我个人的经验,我注意到当列名没有用括号“[]”表示时,它不允许在Excel中保存,也就是说…( [To][Message][SentOn] )。