那么麻烦干嘛? 直接用值代进去不就可以了. string CString = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Documents and Settings\sunyi\Desktop\v1.0.0.9\PreOpeningAuditClient\bin\Debug\IHG_WindowsApp.mdb"; OleDbConnection connect = new OleDbConnection(CString); string sql="update tbl_pre_auditdept set qty_to_inspect=qty_to_inspect-1 where audit_id="+AuditID+" and dept_id="+DeptID+" and dept_src='"+DeptSrc+"'";OleDbCommand cmd1 = new OleDbCommand(sql, connect); connection.Open(); cmd1.ExecuteNonQuery(); connection.Close();
要是数据库的值没有变.
且你的SQL语句执行没有错.
那就是你程序的错.
看看程序中的字段和SQL语句中的字段一样不一样.
设断点看在哪报错.
此方法的代码贴出来看!
{
protected OleDbConnection Connection; public JetOle(string dbConnectionString); protected string ConnectionString { get; } public int RunStatement(string queryString, IDataParameter[] parameters);
public DataSet RunStatement(string queryString, IDataParameter[] parameters, string tableName);
public void RunStatement(string queryString, IDataParameter[] parameters, DataSet dataSet, string tableName);
}
private void UpdateChecklistQty(int auditId, int Dept_Id, string Dsrc)
{
string CString = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Documents and Settings\sunyi\Desktop\v1.0.0.9\PreOpeningAuditClient\bin\Debug\IHG_WindowsApp.mdb"; OleDbConnection connect = new OleDbConnection(CString);
OleDbCommand cmd1 = new OleDbCommand("update TBL_PRE_AUDITDEPT set QTY_TO_INSPECT=QTY_TO_INSPECT-1 where AUDIT_ID=@AuditID and DEPT_ID=@DeptID and DEPT_SRC=@DeptSrc", connect);
cmd1.Parameters.Add("@DeptID", OleDbType.VarChar).Value = Dept_Id;
cmd1.Parameters.Add("@AuditID", OleDbType.VarChar).Value = auditId;
cmd1.Parameters.Add("@DeptSrc", OleDbType.VarChar).Value = Dsrc;
connect.Open();
cmd1.ExecuteNonQuery();
connect.Close();
}
cmd1.Parameters.Add("@AuditID", OleDbType.VarChar).Value = auditId;
cmd1.Parameters.Add("@DeptSrc", OleDbType.VarChar).Value = Dsrc;
改为固定值如:cmd1.Parameters.Add("@DeptID", OleDbType.VarChar).Value = 1;
cmd1.Parameters.Add("@AuditID", OleDbType.VarChar).Value = 2;
cmd1.Parameters.Add("@DeptSrc", OleDbType.VarChar).Value = 3;
再试试
auditId=1
的时候这短代码才好用,怎么回事啊string CString = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=IHG_WindowsApp.mdb"; OleDbConnection connection = new OleDbConnection(CString);
OleDbCommand cmd1 = new OleDbCommand("update TBL_PRE_AUDITDEPT set [QTY_TO_INSPECT]=QTY_TO_INSPECT-1 where [AUDIT_ID]=1 and [DEPT_ID]=@DID and [DEPT_SRC]=@DeptSrc", connection);
cmd1.Parameters.Add("@DID", OleDbType.Integer).Value = Dept_Id;
cmd1.Parameters.Add("@AuditID", OleDbType.Integer).Value = auditId;
cmd1.Parameters.Add("@DeptSrc", OleDbType.VarChar).Value = Dsrc;
connection.Open();
cmd1.ExecuteNonQuery();
connection.Close();
cmd1.Parameters.Add("@DID", OleDbType.Integer).Value = Dept_Id;
cmd1.Parameters.Add("@AuditID", OleDbType.Integer).Value = auditId;
这两行位置换一下就好了,晕死
直接用值代进去不就可以了.
string CString = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Documents and Settings\sunyi\Desktop\v1.0.0.9\PreOpeningAuditClient\bin\Debug\IHG_WindowsApp.mdb"; OleDbConnection connect = new OleDbConnection(CString); string sql="update tbl_pre_auditdept set qty_to_inspect=qty_to_inspect-1 where audit_id="+AuditID+" and dept_id="+DeptID+" and dept_src='"+DeptSrc+"'";OleDbCommand cmd1 = new OleDbCommand(sql, connect); connection.Open();
cmd1.ExecuteNonQuery();
connection.Close();