使用OleDbCommand.ExecuteNonQuery()时出现溢出错误

时间:2014-06-22 12:34:18

标签: c# oledb oledbcommand

我使用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)

感谢。

0 个答案:

没有答案