我已经创建了一个 MySQL 表。我可以插入数据,但现在我想在使用 c# 语言将其输入到 Windows 应用程序中另一个选项卡的文本框后获取保存的数据。
我已经编写了“刷新”按钮来获取数据,但我不知道它是否正确。基本上我想单击它,从表中获取数据,然后将其发布到文本框。
这是我目前在获取数据部分得到的结果:
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();
}
}
}
}
求助! 谢谢
最佳答案
您问题中的 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
函数,无论是 int
、 double
等。查看 MySqlDataReader reference page 了解更多类型。
根据表格布局更改的频率,您可能还希望使用 .GetOrdinal
来使用阅读器获取数据。此命令允许您指定列名而不是其索引。上面的调用可以改为:
//assuming "clanname" is a column in your database
textBox1.Text = reader.GetString(reader.GetOrdinal("clanname");
最后,在你的例子中你使用了
while (reader.Read()) { ... }
这将遍历查询结果集中的每一行。我不知道你有多少个文本框,或者你是否正在寻找特定格式,但请注意,如果你想在文本框中显示多行字段的数据,你将必须附加到 Text
每次循环迭代的属性。
关于c# - 从 MySQL 连接获取数据并将其显示在 TextBox 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9254308/