在 C# mysql 中获取单个列的值并将其放入文本框中
Posted
技术标签:
【中文标题】在 C# mysql 中获取单个列的值并将其放入文本框中【英文标题】:Get values of a single column in C# mysql and put it in textbox 【发布时间】:2018-02-16 09:18:39 【问题描述】:我有一张名为 WeeklySales 的表格,它有 2 列,DateandTime 和 Sales。现在,我的表单上有 3 个文本框。我想获取表中添加的最新值,所以我有这个字符串。
string sql = "SELECT Sales FROM database.weeklysales ORDER BY DateandTime DESC LIMIT 3";
现在,我有了这个数据库(假设月份就是日期),
DateandTime | Sales
March | $300
February | $500
January | $400
并使用该字符串获得此结果:
Sales
$300
$500
$400
现在,我想将第一行放入第一个文本框,然后将第二行放入第二个文本框,依此类推...现在,我不知道在 Datareader 中输入什么...
try
con.Open();
using (reader = cmd.ExecuteReader())
first.Text = ?
second.Text = ?
third.Text = ?
finally
con.Close();
我已经搜索过,但不幸的是他们只得到了第一行。
【问题讨论】:
您可以在很多地方学习如何正确使用数据阅读器。我建议你这样做。 我已经彻底搜索,但无法获得正确的结果。如果我知道该放什么,我就不会在这里问了。 ***.com/questions/4018114/… 有帮助 【参考方案1】:由于您只有 3 个文本框要填充 - 没有循环,只需手动推进阅读器。
mysqlDataReader dr = cmd.ExecuteReader();
dr.Read();
first.Text = dr.GetValue(0).ToString();
dr.Read();
second.Text = dr.GetValue(0).ToString();
dr.Read();
third.Text = dr.GetValue(0).ToString();
【讨论】:
谢谢。我解决了这个问题。但是如果我想把这三个都放在一个富文本框中(每个数据都放在一行中)怎么办?我知道我会使用循环,但我应该在dr.GetValue(0).ToString();
中替换什么
@Mamayg 我认为您应该问一个新问题,说明您尝试过什么以及它是如何不起作用的。【参考方案2】:
SqlDataReader
类有一个Read()
方法,只要有更多行要读取,它就会返回一个布尔值。例如,您可以使用它通过 while 循环读取多行。
using (SqlDataReader reader = cmd.ExecuteReader()
while (reader.Read())
//Do your stuff here
更多信息请见https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.read%28v=vs.110%29.aspx
【讨论】:
谢谢。我忘了包括那个......但我最需要的是我应该首先放入什么。Text = ?....我总是阅读器。GetValue(0).ToString();但它是用于行的,不是吗?【参考方案3】:以下代码将对您有所帮助,
using (reader = cmd.ExecuteReader())
if (reader.HasRows)
int i = 1;
while (reader.Read())
switch (i)
case 1:
first.Text = reader["Sales"].ToString();
break;
case 2:
second.Text = reader["Sales"].ToString();
break;
default:
third.Text = reader["Sales"].ToString();
break;
i += 1;
【讨论】:
谢谢,但它仍然只显示最后一个(而不是第一个)而不是所有值。无论如何,我通过上面的答案解决了我的问题。再次感谢您,【参考方案4】:避免重复或在多个对象的情况下
public void Example(MySqlDataReader dr)
TextBox a = new TextBox();
TextBox b = new TextBox();
TextBox c = new TextBox();
foreach(TextBox current in new List<TextBox> a, b, c )
dr.Read();
current.Text = dr.GetValue(0).ToString();
【讨论】:
这并没有提供问题的答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker。 - From Review以上是关于在 C# mysql 中获取单个列的值并将其放入文本框中的主要内容,如果未能解决你的问题,请参考以下文章
SQL - 如何获取列的值并将其作为新列的值放在字符串的末尾
c# 如何从datatable中取出某列的值并去除这一列的相同值,并将这列添加到新的表中