使用c#从Mysql表中检索数据

时间:2014-04-04 14:48:10

标签: c# mysql

我正在尝试编写一个简洁的程序,我将数据输入数据库并从数据库中读取数据

数据库名称是kangoojump,我在这里有一个管理表来存储ID,用户名和密码

我为我的程序创建了一个登录屏幕,并希望输入我的用户名&密码,当我按下登录按钮时,我想从数据库表中检索数据并比较两者,如果它们匹配,则可以访问下一个表格......

这是我的代码

MySqlCommand SelectCommand = new MySqlCommand(" SELECT username FROM kangoojump.admin where _id=1", mcon);


MySqlDataReader myReader;
mcon.Open();
myReader = SelectCommand.ExecuteReader();
while (myReader.Read())
{
temp1 = myReader["username"].ToString();
}

我在我的函数中创建了一个string类型的用户名,密码,temp1,temp2,但是

当我尝试运行该程序时,我得到的错误是"使用未分配的变量' temp1' " 我的代码有什么问题? 感谢

2 个答案:

答案 0 :(得分:1)

你在哪里定义了temp1? 在定义temp1

按以下步骤操作 -

字符串temp1 = string.Empty;

答案 1 :(得分:0)

问题必须(部分)使用这行代码:

while (myReader.Read())

您和我足够聪明,知道数据库查询将始终返回一行,但编译器不会。这是因为我们有编译器无法获得的信息:我们知道会有一个管理员记录。编译器无法知道这一点。因此,编译器无法保证您的代码将永远进入while循环体。这意味着它也无法保证您将为temp1变量赋值...因此,您可能的“未分配变量'temp1'”:编译器无法保证您已编写合理的变量的值,并且在你做之前不允许从中读取。

简单的解决方案是在第一次声明变量时为变量分配一个基本值:

string temp1 = "";

虽然我们在这里:永远不会永远存储纯文本密码。存储单向密码哈希