c#mysql无法将查询输出到文本框

本文关键字:文本 输出 查询 c#mysql | 更新日期: 2023-09-27 17:57:36

这是我的代码:

private void searchInDatabase()
{
    MySqlConnection c = new MySqlConnection("datasource=localhost; username=root; password=123456; port=3306");
    MySqlCommand mcd;
    MySqlDataReader mdr;
    String query;
    try 
    {
        c.Open();
        query = "SELECT * FROM test.classmates WHERE first_name ='"+searchName.Text+"'";
        mcd = new MySqlCommand(query, c);
        mdr = mcd.ExecuteReader();
        if(mdr.Read())
        {
            firstName.Text = mdr.GetString("first_name");
            middleName.Text = mdr.GetString("middle_name");
            lastName.Text = mdr.GetString("last_name");
            age.Text = mdr.GetString("age");
        }
        else
        {
            MessageBox.Show("Result Not Found");
        }
    }
    catch(Exception error)
    {
        MessageBox.Show("Error: "+error.Message);
    }
    finally
    {
        c.Close();
    }
}

如果我错过了什么或做错了什么,我想寻求帮助。如果你有空闲时间,如果你能评论我实现这个问题的完美方法,我将不胜感激:我想从MySQL获取数据,然后把它放在文本框中。

c#mysql无法将查询输出到文本框

根据MSDN,您需要将列号作为参数传递

public override string GetString(int i)

因此,请尝试传递列名的列号(从0开始)。假设first_name是表的第一列,则

firstName.Text = mdr.GetString(0);

更新

尝试使用MySqlConnectionStringBuilder

MySqlConnectionStringBuilder conn_string = new MySqlConnectionStringBuilder();
conn_string.Server = "serverip/localhost";
conn_string.UserID = "my_user";
conn_string.Password = "password";
conn_string.Database = "my_db";
MySqlConnection conn = new MySqlConnection(conn_string.ToString();

首先查看此连接字符串示例,然后更改您的连接字符串:'Server=myServerAddress;Port=1234;Database=myDataBase;Uid=myUsername;Pwd=myPasswor;'如果连接正常,则发送错误消息或完全异常。