gpt4 book ai didi

c# - 如何从循环外部访问变量?

转载 作者:行者123 更新时间:2023-11-29 11:39:27 25 4
gpt4 key购买 nike

我正在尝试在 C# 控制台应用程序中创建数据库浏览器。

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

这是我的代码:

//检查 whileLoop te komen 中的登录信息; bool 检查1=假; //Er mogen maximaal 3 foute login acites gemaakt worden; 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;

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

关于c# - 如何从循环外部访问变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36062511/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com