gpt4 book ai didi

c# - 使用参数查询 MySQL & C#

转载 作者:太空宇宙 更新时间:2023-11-03 10:42:49 24 4
gpt4 key购买 nike

嘿,当我尝试向我的 mySql 查询添加参数时,我正在尝试输出到标签如果我使用此 sql 语句“string sql =”SELECT login_Type FROM schooladmindb.login WHERE Password ='admin'AND Email ='admin';”手动将参数设置为“admin”,则效果很好但是当输入什么变量时我没有输出

      string password = Txtpassword.ToString();
string email = Txtpassword.ToString();
string sql = "SELECT login_Type FROM schooladmindb.login WHERE Password = @password AND Email = @email";

MySqlConnection con = new MySqlConnection("");
con.Open();
MySqlCommand cmd = new MySqlCommand(sql, con);
cmd.Parameters.AddWithValue("@password", password.);
cmd.Parameters.AddWithValue("@email", email);


MySqlDataReader reader = cmd.ExecuteReader();

while (reader.Read())
{
string type = reader.GetString(1);
Lbltest.Text = type;


//data2txtz.Text = reader.GetString("id");
//datatxt.Text = reader.GetString("userId");
}

当我在两个文本框中输入 admin 时,我没有得到任何输出,我不确定从这里去哪里

最佳答案

您正在寻找结果中的第二列:

reader.GetString(1)

但只选择一列:

SELECT login_Type FROM schooladmindb.login

获取第一列:

reader.GetString(0)

此外,Txtpassword 是什么?您在其上调用 .ToString(),但它是否像 TextBox 一样输入?根据显示的代码,我不能肯定知道这个,但是您可能在这里使用了错误的值。您必须调试才能找到答案。

但要点是,如果 TxtpasswordTextBox 或其他类似控件,您可能需要它的 .Text 属性。 .ToString() 只会给你类的名称。


此外,您是否注意到您对密码电子邮件使用了相同的用户输入?这可能是你的错字。同样,我不能确定。但值得您检查一下。


你这里也有错别字:

cmd.Parameters.AddWithValue("@password", password.);
// right here ---^

这会阻止您的代码完全 编译。所以...您可能想看看编译器给您的错误消息。


旁注,但重要:以纯文本形式存储用户密码是众所周知的坏主意。而且是对用户极度不负责任。用户密码应该用单向散列来隐藏,并且应该永远以其原始形式可读。甚至您作为系统所有者也不行。

关于c# - 使用参数查询 MySQL & C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35529743/

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