accessing variable outside for loop in c#?
Here i need to access the variable delval
outside the for loop as in the code below
cmd_mail.Parameters.Add("@deleteusers", SqlDbType.NVarChar).Value = delval;
..How to do this..
开发者_运维问答Here is my code
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 RequestId=@RequestId and CustomerCode =@CustomerCode 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();
}
Any suggestion?
Define it outside the loop then, and it will be visible in both blocks, as well as outside.
As zerkms said, declare it outside the loop. See below.
string delval = "";
for (int i = 0; i <= NoOfUsers - 1; i++)
{
// your existing stuff
// ...
if (string.IsNullOrEmpty(delval))
{
delval = Loginusername;
}
else
{
delval = delval + "," + Loginusername;
}
}
if (flag == "Yes")
{
// your existing stuff
// ...
cmd_mail.Parameters.Add("@deleteusers", SqlDbType.NVarChar).Value = delval;
}
精彩评论