2013-02-21 70 views
1

我已經編寫了用於將數據插入到Excel表單中的代碼。我的代碼不會引發任何異常,並且每次Excel文件的大小都會增加1KB。但是當我打開表單時,它不顯示任何數據。C#中的OleDbConnection

我很困惑,無法弄清楚問題所在。 請提前幫助和thanx ... !!!

string strSQL = string.Empty; 
excelConn.Open(); 
strSQL = "INSERT INTO [" + sheetName + "$] ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11]) VALUES(@value1, @value2, @value3, @value4, @value5,@value6, @value7, @value8, @value9 ,@value10, @value11)"; 
excelCommand = new OleDbCommand(strSQL, excelConn); 
excelCommand.Parameters.AddWithValue("@value1", Program); 
excelCommand.Parameters.AddWithValue("@value2", District); 
excelCommand.Parameters.AddWithValue("@value3", Period); 
excelCommand.Parameters.AddWithValue("@value4", paramValue1); 
excelCommand.Parameters.AddWithValue("@value5", paramValue2); 
excelCommand.Parameters.AddWithValue("@value6", paramValue3); 
excelCommand.Parameters.AddWithValue("@value7", BusinessLogic); 
excelCommand.Parameters.AddWithValue("@value8", ExpectedResult); 
excelCommand.Parameters.AddWithValue("@value9", ActualResult); 
excelCommand.Parameters.AddWithValue("@value10", Status); 
excelCommand.Parameters.AddWithValue("@value11", DateTime);    

excelCommand.ExecuteNonQuery(); 
return true; 
+0

你有什麼迄今所做的,告訴我們你的代碼 – animaonline 2013-02-21 11:36:52

+0

這裏是一段代碼: – user1871770 2013-02-21 11:37:51

+0

你能證明你的代碼更好的援助? – 2013-02-21 11:38:11

回答

3

OLEDB要求不應該命名參數。你應該在你的查詢中使用問號:

strSQL = "INSERT INTO [" + sheetName + "$] 
     ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11]) 
     VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; 
+0

我的代碼在這些參數的情況下工作正常。現在我已經改變了工作表名稱,我能夠看到新工作表中的值。 – user1871770 2013-02-21 12:02:19

+0

很高興你做到了:)如果這個答案滿足你,你可能想要將它標記爲已接受。 – Larry 2013-02-21 12:21:30