从MySQL连接获取数据并在TextBox上显示它

时间:2012-02-13 00:57:38

标签: c# mysql database phpmyadmin

我创建了一个MySQL表。我可以插入数据,但是现在我希望在我使用c#语言将其输入到Windows应用程序中的另一个选项卡的TextBox后获取已保存的数据。

我已经编码了按钮"刷新"获取数据,但我不知道它是否正确。基本上我想点击它,从表中获取数据,并将其发布在文本框中。

以下是我到目前为止获取数据部分的内容:

    private void button3_Click(object sender, EventArgs e)
    {
        string clanname, date, type, rules, final;
        string connString = "Server=localhost;Database=request;Uid=root;Pwd=;";
        using (MySqlConnection mcon = new MySqlConnection(connString))
        using (MySqlCommand cmd = mcon.CreateCommand())
        {
            mcon.Open();
            cmd.CommandText = "SELECT * FROM requesttcw";
            using (MySqlDataReader reader = cmd.ExecuteReader())
            {
                while (reader.Read())
                {
                    clanname = textBox1.Text.Trim();
                    date = textBox2.Text.Trim();
                    type = textBox2.Text.Trim();
                    rules = textBox2.Text.Trim();
                }
            }
        }
    }

请帮忙! 谢谢

1 个答案:

答案 0 :(得分:3)

您问题中的Select查询是从requesttcw表格中获取数据。您需要从reader实例中读取该数据并将其添加到相应的文本框中。例如,你可以做这样的事情来获取数据:

//textBox1 will hold the value of the first row and first column of your database.
textBox1.Text =  reader.GetString(0);

在上面的GetString命令中更新索引将更改从中获取数据的列。因此,您必须适当更新该索引以从表中获取正确的数据并插入到右侧文本框的.Text属性。

我不知道您在表中处理的数据类型。如果类型不是string,则您需要为该类型使用相应的Get函数,无论intdouble等,请查看{{ 3}}更多类型。

根据您的表格布局更改的频率,您可能还希望使用.GetOrdinal来使用您的阅读器获取数据。此命令允许您指定列名而不是其索引。上述调用可以更改为:

//assuming "clanname" is a column in your database
textBox1.Text =  reader.GetString(reader.GetOrdinal("clanname");

最后,在您的示例中使用了

while (reader.Read()) { ... }

这将遍历查询结果集中的每一行。我不知道您有多少文本框或者您正在寻找特定格式,但请注意,如果要在文本框中显示多行中的字段数据,则必须附加到{每次循环迭代的{1}}属性。