我正在尝试在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。