在這裏,我需要訪問的變量delval
外的for循環,如下面的代碼在c#中循環訪問變量外?
cmd_mail.Parameters.Add("@deleteusers", SqlDbType.NVarChar).Value = delval;
..How做到這一點..
這裏是我的代碼
for (int i = 0; i <= NoOfUsers - 1; i++) {
using (SqlConnection Conn = new SqlConnection(constr_str)) {
using (SqlCommand cmd = new SqlCommand()) {
cmd.Connection = Conn;
Conn.Open();
cmd.CommandText = "Select top 1 Login_User_Name from Rode_Provisioning_User where [email protected] and CustomerCode [email protected] and disableflag=0 order by User_Count";
cmd.Parameters.Add("@CustomerCode", SqlDbType.VarChar).Value = CustomerCode;
cmd.Parameters.Add("@RequestId", SqlDbType.VarChar).Value = RequestId;
string Loginusername = cmd.ExecuteScalar();
Conn.Close();
string delval = "";
if (string.IsNullOrEmpty(delval)) {
delval = Loginusername;
} else {
delval = delval + "," + Loginusername;
}
}
}
}
if (flag == "Yes") {
string constr_dep = "server=" + _strServer + ";database=" + _strDatabase + ";uid=" + _strUserid + ";pwd=" + _strPassword + ";";
SqlConnection con_dep = new SqlConnection();
con_dep.ConnectionString = constr_dep;
SqlCommand cmd_mail = new SqlCommand("delete_user_mailsend_sp", con_dep);
cmd_mail.CommandType = CommandType.StoredProcedure;
cmd_mail.CommandTimeout = 0;
cmd_mail.Parameters.Add("@companycode", SqlDbType.NVarChar).Value = CustomerCode
cmd_mail.Parameters.Add("@deleteusers", SqlDbType.NVarChar).Value = delval;
try {
con_dep.Open();
cmd_mail.ExecuteNonQuery();
} catch (SqlException ee) {
VWLogger.LogMessage("Exception in delete_user_mailsend_sp:", TraceEventType.Critical);
VWLogger.LogMessage(ee, TraceEventType.Critical);
return ee.Message;
flag = ee.Errors(0).ToString();
}
con_dep.Close();
}
任何建議?
您需要重構代碼pal。 – Zenwalker
'delval'在聲明後總是一個空字符串,所以你可以刪除if語句。 –
http://stackoverflow.com/questions/7475200/sql-server-connection-management-with-c/7475327#7475327 –