所以我有一个if语句如下
DataTable table = new DataTable();
MySqlCommand select = new MySqlCommand("SELECT personID, address_addressID from person WHERE email='" + emailAddress + "' and password = '" + passwordR + "'", connect); //brings back the person ID if user details are correct
using (MySqlDataAdapter adapter = new MySqlDataAdapter(select))
{
adapter.Fill(table);
string sessionVar = table.Rows[0]["personID"].ToString();
Session["personID"] = sessionVar;
int sessionVarAddress = Int32.Parse(table.Rows[0]["address_addressID"].ToString());
Session["address_addressId"] = sessionVarAddress;
我希望能够在if语句之外使用变量'sessionVar',这可能吗?
答案 0 :(得分:1)
如果要在代码块之外使用变量,则必须在外部声明:
string sessionVar;
using (...)
{
sessionVar = table.Rows[0]["personID"].ToString();
}
例如,如果是if
,foreach
,while
等块,您可能会遇到麻烦。无法保证变量将被设置。您必须设置默认值,或者在else
分支中分配值。例如。
所以不喜欢这样:
string sessionVar;
if (...)
{
sessionVar = table.Rows[0]["personID"].ToString();
}
// using sessionVar here will yield a compiler error.
但是像这样:
string sessionVar;
if (...)
{
sessionVar = table.Rows[0]["personID"].ToString();
}
else
{
sessionVar = null;
}
// using sessionVar is allowed now.
答案 1 :(得分:0)
首先,它不是if。
无论如何,你可以这样做:
DataTable table = new DataTable();
string sessionVar = "";
MySqlCommand select = new MySqlCommand("SELECT personID, address_addressID from person WHERE email='" + emailAddress + "' and password = '" + passwordR + "'", connect); //brings back the person ID if user details are correct
using (MySqlDataAdapter adapter = new MySqlDataAdapter(select))
{
adapter.Fill(table);
sessionVar = table.Rows[0]["personID"].ToString();
Session["personID"] = sessionVar;
int sessionVarAddress = Int32.Parse(table.Rows[0]["address_addressID"].ToString());
Session["address_addressId"] = sessionVarAddress;
您必须使用空白字符串“”初始化它,否则它将无法编译!
答案 2 :(得分:0)
如果在使用之外声明,则可以获取sessionVar值。
var svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
var svgNS = svg.namespaceURI;
var rect = document.createElementNS(svgNS,'rect');
rect.setAttribute('x',5);
rect.setAttribute('y',5);
rect.setAttribute('width',500);
rect.setAttribute('height',500);
rect.setAttribute('fill','#95B3D7');
svg.appendChild(rect);
document.body.appendChild(svg);
现在您可以访问sessionVar值。
答案 3 :(得分:0)
我不确定我是否理解了您的问题,但您可以在if语句之前初始化变量,如:
string sessionVar = "";
if(condition){
...
sessionVar = table.Rows[0]["personID"].ToString();
...
}
//Use the variable after the 'if' statement.
var newString = sessionVar;