我正在尝试在C#console application中创建数据库浏览器。

现在,我有一段代码检查MySql Server的登录数据,但它包装在while循环中。
这意味着while循环内的变量basicConn是不可访问的,因此我无法在循环外使用它。
现在,我在循环之前声明了该变量,并在循环内部填充了该变量,但是在循环之后,我想使用该连接,但出现错误:“使用未分配的局部变量`basicConn'”。

这是我的代码:

//在循环中检查所有消息
    bool check1 = false;
    // Er mogen最大3个登录登录名。
    int失败= 0;

MySqlConnection basicConn;

Console.WriteLine ("Log hier in om verbinding te maken met de MySql server.\n");

//Blijf alles wat in deze whileLoop staat herhalen tot het goed is gegaan;
while (check1 == false)
{
    //Als er 3 fouten zijn gemaakt met inloggen wordt het programma gesloten;
    if (fails < 3 && fails >= 0)
    {
        Console.WriteLine ("Poging {0}", fails + 1);

        //Hostnaam;
        string host = "";
        Console.Write ("Hostname: ");
        host = Console.ReadLine ();

        //Gebruikersnaam;
        string gebruikersnaam = "";
        Console.Write ("Gebruikersnaam: ");
        gebruikersnaam = Console.ReadLine ();

        //Wachtwoord;
        string wachtwoord = "";
        Console.Write ("Wachtwoord: ");
        wachtwoord = Console.ReadLine ();

        //MySql Connectie basis;
        string connString = "Server=" + host + ";Uid=" + gebruikersnaam + ";Password=" + wachtwoord + ";";
        basicConn = new MySqlConnection (connString);

        try
        {
            //MySQl Connectie maken;
            basicConn.Open ();

            Console.WriteLine ("Connectie is gemaatk!");

            check1 = true;
        }
        catch (Exception)
        {
            Console.WriteLine ("Er is iets misgegaan met een connectie maken, probeer het opnieuw.\n\n");

            check1 = false;

            fails += 1;
        }
    }
    else
    {
        Console.WriteLine ("Je aantal pogingen zijn mislukt!\nHet programma wordt gesloten.");

        //Laat het programma 1.5 seconden wachten tot het verdergaat;
        Thread.Sleep (1500);
        //Laat het programma sluiten;
        Environment.Exit (1);
    }
}


//          ===============================================================================================================================


MySqlCommand db = basicConn.CreateCommand ();
db.CommandText = "SHOW DATABASES";
MySqlDataReader Read_db;
Read_db = db.ExecuteReader ();
while (Read_db.Read()) {
    string row = "";
    for (int i = 0; i < Read_db.FieldCount; i++)
        row += Read_db.GetValue (i).ToString ();
    Console.WriteLine (row);
}
Read_db.Close ();

最佳答案

将第一行更改为:

MySqlConnection basicConn = null;


并且不要忘记在循环后检查它是否仍然为null。

07-26 09:29
查看更多