C# ExecuteOnQuery不在for循环中工作
在数据库中:C# ExecuteOnQuery不在for循环中工作,c#,asp.net,C#,Asp.net,在数据库中: Alter Procedure Update_MaterialTransactionsto2ForWithdrawal @materialName varchar(50), @staffNumber varchar(10), @description varchar(50), @transactionID int As Begin Update Table_MaterialTransactions set Status=2 where StaffN
Alter Procedure Update_MaterialTransactionsto2ForWithdrawal
@materialName varchar(50),
@staffNumber varchar(10),
@description varchar(50),
@transactionID int
As
Begin
Update Table_MaterialTransactions
set Status=2
where StaffNumber = @staffNumber
and CrossSection = @description
and SubSubCategory = @materialName
and Status = 1
and TransactionID = @transactionID
End
在数据访问层:
public static void UpdateMaterial(string staffNumber,string materialName,string description,int transaction)
{
SqlConnection connection = new SqlConnection(ConnectDatabase.ReturnConnectionString());
//I am passing connection string as the parameter
try
{
connection.Open();
SqlCommand cmd = new SqlCommand("Update_MaterialTransactionsto2ForWithdrawal", connection);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Clear();
cmd.Parameters.Add("@materialName", SqlDbType.Varchar, 50).Value = materialName;
cmd.Parameters.Add("@staffNumber", SqlDbType.Varchar, 50).Value = staffNumber;
cmd.Parameters.Add("@description", SqlDbType.Varchar, 50).Value = description;
cmd.Parameters.Add("@transactionID", SqlDbTypeInt).Value = transactionID;
int i = cmd.ExecuteNonQuery();
connection.Close();
}
catch(Exception ex)
{
connection.Close();
}
在客户端:
void btnSubmit_Click(Object sender,EventArgs e)
{
int j=0,k=0;
for(int i=0;i<transactions.Count;i++)
{
string id = "ctl00$ContentPlaceHolder1$" + i.ToString();
CheckBox chk=(CheckBox)Page.FindControl(id);
if(chk.Checked == true)
{
Objects.UpdateMaterial(staffNumbers[i].ToString(), materials[i].ToString(), descriptions[i].ToString(), Convert.ToInt32(transactions[i]));
j++;
}
else
{
Objects.DeleteTheSelectedRowOfMaterialTransaction(staffNumbers[i].ToString(), materials[i].ToString(), descriptions[i].ToString(), Convert.ToInt32(transactions[i]));
k++;
}
}
void btnSubmit\u单击(对象发送者,事件参数e)
{
int j=0,k=0;
对于(int i=0;i尝试在过程中添加最后一行
Return @@Rowcount
其中是ur STAFFNUMBER和othwer变量。我没有发布整个代码…您在客户端代码中看到的staffNumbers是一个arraylist..我在调试中检查,…正确的参数正在从web应用程序传递到查询。但是ExecuteOnQuery返回0行受影响。它不会抛出任何错误alse.u h添加参数时,ave stff编号大小为50,数据库中的大小为10…这是否有区别…我的员工编号大小为7,即您的对象类中是否有任何变量名transactionID确定然后使用SQL profiler检查更新查询的执行情况,通过这样做,您将了解更新的问题所在电子查询。