我试图弄清楚如何将一行数据插入现有的Excel文件中。该文件很简单,只有3个标题,CITY STATE和ZIP。我已经在Excel中选择了3个单元格并将其命名为Browns。当我运行程序时,我得到一个错误代码。查询值和目标字段的数量不同。
这是我传递给方法
的内容Excel_IO.inSertRowTEST(filePath1.Text, "Browns");
我创建的方法。
public static void inSertRowTEST(string FP1, string TableName)
{
string sql = null;
Excel_IO.openSheet(FP1);
sql = "INSERT INTO " + TableName + " VALUES ('Jack','Smith')";
myCommand.CommandText = sql;
myCommand.ExecuteNonQuery();
Excel_IO.closeMyConnection();
}
public static void openSheet(string filePathMain)
{
// MyConnection Equals A New OleDbConnection, The Connection Defines Which Versions Of Excel Files Can Be Used, The file path, And Some Basic Excel Properties
MyConnection = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.ace.OLEDB.12.0;Data Source=" + filePathMain + ";Extended Properties=\"Excel 8.0; HDR=Yes;\";");
// Opening The Connection With The Excel File
MyConnection.Open();
// The Connection Gets MyConnection
myCommand.Connection = MyConnection;
}
public static void closeMyConnection()
{
MyConnection.Close();
}
有人有任何建议吗?
System.Data.OleDb.OleDbException(0x80004005):查询值和目标字段的数量不同。
at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr)
at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams,Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior,Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior,String method)
at System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
位于c:\ Users \ t1008ts \ Desktop \ Projects \ MasterP2 \ May19Template \ Excel_IO.cs中的MyExcel_IO.Excel_IO.inSertRowTEST(String FP1,String TableName):第220行
答案 0 :(得分:0)
我已在Excel中选择了3个单元格,并将范围命名为Browns
我认为当您插入Excel电子表格时,您需要指定表格(或工作表),而不是创建范围。
尝试将工作表重命名为" Browns"
http://office.microsoft.com/en-us/excel-help/rename-a-sheet-HP005202108.aspx