user1871770
user1871770

Reputation: 51

OleDbConnection in C#

I have written code for inserting data into excel sheet.My code doesn't throw any exception and each time excel file's size get incremented by 1KB. But when I open the sheet it does not show any data.

I am puzzled and unable to figure out the problem. Please help and thanx in advance...!!!

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;

Upvotes: 1

Views: 311

Answers (1)

Larry
Larry

Reputation: 18031

OLEDB requires that parameters should not be named. You should be using Question Marks in your query:

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

Upvotes: 3

Related Questions