代碼如下:public int UpdateByParameters(BookingRecords records)//BookingRecords是一個自定義的類
{
string SQL = "UPDATE [QntyBooking] SET [Qnty]=?,[LOT]=?,[STYLE]=? WHERE [BKID]=?";//我用的是Access數據庫
OleDbCommand command = new OleDbCommand(SQL,cnn);//cnn數據庫連接字串沒有問題. OleDbParameter param_ID = new OleDbParameter("@BKID",OleDbType.Integer,32,"BKID");
OleDbParameter param_QNTY = new OleDbParameter("@Qnty",OleDbType.Integer,16,"Qnty");
OleDbParameter param_LOT = new OleDbParameter("@LOT",OleDbType.Char,20,"LOT");
OleDbParameter param_STYLE = new OleDbParameter("@STYLE",OleDbType.Char,20,"STYLE"); if(command.Connection.State == ConnectionState.Closed)
{
command.Connection.Open();
} OleDbTransaction trans = command.Connection.BeginTransaction();
command.Transaction = trans;
command.Parameters.Clear();
command.Parameters.Add(param_ID).Value = records._QBID;
command.Parameters.Add(param_QNTY).Value = records.QNTY;
command.Parameters.Add(param_LOT).Value = records.LOT;
command.Parameters.Add(param_STYLE).Value = records.STYLE;
//我跟蹤過records中的這幾個字段值,沒有問題. int counter = 0;
try
{
counter = command.ExecuteNonQuery();//問題出在這里:counter一直是0,也就是被更新的記錄數是0條.
trans.Commit();
}
catch(System.Exception ex)
{
tempModule.Error = ex.Message;
trans.Rollback();
counter = -1;
}
finally
{
command.Connection.Close();
}
}
程序并沒有報錯,command.ExecuteNonQuery()正常執行,trans.Commit()也正常執行,catch不到任何錯誤,請問為什么更新動作沒有執行,所更新的記錄數為0呢?
{
string SQL = "UPDATE [QntyBooking] SET [Qnty]=?,[LOT]=?,[STYLE]=? WHERE [BKID]=?";//我用的是Access數據庫
OleDbCommand command = new OleDbCommand(SQL,cnn);//cnn數據庫連接字串沒有問題. OleDbParameter param_ID = new OleDbParameter("@BKID",OleDbType.Integer,32,"BKID");
OleDbParameter param_QNTY = new OleDbParameter("@Qnty",OleDbType.Integer,16,"Qnty");
OleDbParameter param_LOT = new OleDbParameter("@LOT",OleDbType.Char,20,"LOT");
OleDbParameter param_STYLE = new OleDbParameter("@STYLE",OleDbType.Char,20,"STYLE"); if(command.Connection.State == ConnectionState.Closed)
{
command.Connection.Open();
} OleDbTransaction trans = command.Connection.BeginTransaction();
command.Transaction = trans;
command.Parameters.Clear();
command.Parameters.Add(param_ID).Value = records._QBID;
command.Parameters.Add(param_QNTY).Value = records.QNTY;
command.Parameters.Add(param_LOT).Value = records.LOT;
command.Parameters.Add(param_STYLE).Value = records.STYLE;
//我跟蹤過records中的這幾個字段值,沒有問題. int counter = 0;
try
{
counter = command.ExecuteNonQuery();//問題出在這里:counter一直是0,也就是被更新的記錄數是0條.
trans.Commit();
}
catch(System.Exception ex)
{
tempModule.Error = ex.Message;
trans.Rollback();
counter = -1;
}
finally
{
command.Connection.Close();
}
}
程序并沒有報錯,command.ExecuteNonQuery()正常執行,trans.Commit()也正常執行,catch不到任何錯誤,請問為什么更新動作沒有執行,所更新的記錄數為0呢?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货