如何使用if语句中声明的变量?

时间:2011-07-17 13:28:30

标签: c# sql

上次我有一个类似的问题,但我们想出如果在逻辑语句之前初始化并为变量设置一个值,那么我可以使用逻辑语句中生成的值。

这一次,我想调用两个方法重载中的一个,具体取决于连接字符串是否为空。像这样。

if (ConnectionString != "") // if there is something in the config file work with it
{
  SqlConnection dataConnection = new SqlConnection(ConnectionString);
}
else
{
  SqlConnection dataConnection = new SqlConnection();
}

try {
  // ...

问题是try块中的任何内容都会失败,因为它不知道dataConnection。

如何才能使其成功?

5 个答案:

答案 0 :(得分:6)

你可以这样做:

SqlConnection dataConnection = !string.IsNullOrEmpty(ConnectionString)
    ? new SqlConnection(ConnectionString) :  new SqlConnection();

或者:

SqlConnection dataConnection;
if (string.IsNullOrEmpty(ConnectionString))
{
    dataConnection = new SqlConnection(ConnectionString);
}
else
{
    dataConnection = new SqlConnection();
}

答案 1 :(得分:3)

在外面声明它(未初始化):

SqlConnection conn;
if(string.IsNullOrEmpty(connectionString)) {
    conn = new SqlConnection();
} else {
    conn = new SqlConnection(connectionString);
}

如果逻辑很简单,也可以使用条件

SqlConnection conn = string.IsNullOrEmpty(connectionString)
     ? new SqlConnection() : new SqlConnection(connectionString);

后者使用using块更容易使用,因为它可以内联完成。

答案 2 :(得分:1)

你必须在if块之外有变量:

SqlConnection dataConnection;
if (ConnectionString != "") // if there is something in the config file work with it
{
  dataConnection = new SqlConnection(ConnectionString);
}
else
{
  dataConnection = new SqlConnection();
}

答案 3 :(得分:1)

我认为你应该在if语句之前定义连接

 SqlConnection dataConnection = null;
    if (ConnectionString != "") // if there is something in the config file work with it
        {
            dataConnection = new SqlConnection(ConnectionString);
        }
        else
        {
            dataConnection = new SqlConnection();
        }
        try
        {

答案 4 :(得分:1)

您可以在if语句旁边声明带有null值的变量 然后在if语句中使用它 当你需要使用它时,检查它是否为空

SqlConnection dataConnection = null;
if (ConnectionString != "") // if there is something in the config file work with it
{
    dataConnection = new SqlConnection(ConnectionString);
}
else
{
    dataConnection = new SqlConnection();
}
try
{
    if(dataConnection != null)
        DoWhatYouWant();
}