我使用Microsoft.ACE.OLEDB.12.0
在访问数据库中插入数据。
我的代码:
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Sources\MyProject\App_Data\Tax\TTMS.mdb";
conn.Open();
OleDbCommand command1 = new OleDbCommand("INSERT INTO table 1(value1,value2,value3,value4,value5,value6,value7,value8,value9,value10) Values (@value1,@value2,@value3,@value4,@value5,@value6,@value7,@value8,@value9,@value10)", conn)
OleDbCommand command2 = new OleDbCommand("INSERT INTO table 2(value11,value12,value13,value14,value15,value16,value17) Values (@value11,@value12,@value13,@value14,@value15,@value16,@value17)", conn)
SqlDataReader droledb = GETDATA();
if (droledb.HasRows)
{
while (droledb.Read())
{
if(table1)
{
command1.Parameters.Add("value1", OleDbType.Integer).Value = value1;
command1.Parameters.Add("value2", OleDbType.Integer).Value = value2;
command1.Parameters.Add("value3", OleDbType.Integer).Value = value3;
command1.Parameters.Add("value4", OleDbType.Integer).Value = value4;
command1.Parameters.Add("value5", OleDbType.Integer).Value = value5;
command1.Parameters.Add("value6", OleDbType.Integer).Value = value6;
command1.Parameters.Add("value7", OleDbType.Integer).Value = value7;
command1.Parameters.Add("value8", OleDbType.Integer).Value = value8;
command1.Parameters.Add("value9", OleDbType.Integer).Value = value9;
command1.Parameters.Add("value10", OleDbType.Integer).Value = value10;
command1.ExecuteNonQuery();
}
else(table2)
{
command2.Parameters.Add("value11", OleDbType.Integer).Value = value11;
command2.Parameters.Add("value12", OleDbType.Integer).Value = value12;
command2.Parameters.Add("value13", OleDbType.Integer).Value = value13;
command2.Parameters.Add("value14", OleDbType.Integer).Value = value14;
command2.Parameters.Add("value15", OleDbType.Integer).Value = value15;
command2.Parameters.Add("value16", OleDbType.Integer).Value = value16;
command2.Parameters.Add("value17", OleDbType.Integer).Value = value17;
command2.ExecuteNonQuery();
}
}
}
command1.ExecuteNonQuery();
有效但command2.ExecuteNonQuery();
不起作用,我收到此错误:
[Message]
Overflow
堆栈跟踪:
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()
at Total_pgTest3.btnOK_Click(Object sender, EventArgs e) in d:\Sources\MyProject\Total\pgTest3.aspx.cs:line 200
at System.Web.UI.WebControls.Button.OnClick(EventArgs e)
at System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
at System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
感谢。