我有一个简单的C#窗体,我有6个文本框。现在我有一个返回3行的SQL查询(它总是返回3行 - 查询从联结表和另一个表中获取数据),每行有2列(名称和电子邮件)。我想要做的是使用sql查询的结果填充这6个文本框,如Name 1
& Email 1
应获得row 1
,Name 2
&的价值Email 2
应该获得row 2
等等的值。
我在这里和那里搜索过但我还没有找到解决方案所以请帮帮我。我知道我需要在这里应用一些循环,但我无法在这里找到逻辑。
图片供参考:
SQL查询结果:
C#Win Form:
代码(显然不是这样做的方式):
SqlDataReader rdr = null;
SqlConnection con = null;
SqlCommand cmd = null;
String Name;
String Email;
string ConnectionString = "// my connection string...";
con = new SqlConnection(ConnectionString);
con.Open();
string CommandText = "//sql query goes here";
cmd = new SqlCommand(CommandText);
cmd.Connection = con;
rdr = cmd.ExecuteReader();
while(rdr.Read())
{
Name = rdr["Name"].ToString();
Email = rdr["Email"].ToString();
}
con.Close();
答案 0 :(得分:1)
您可以将查询结果放入DataTable中。稍后您可以设置文本框以在DataTable的每一行上显示数据。
答案 1 :(得分:1)
创建两个文本框数组
TextBox[] names = new TextBox[] {txtName1, txtName2, txtName3};
TextBox[] mails = new TextBox[] {txtMail1, txtMail2, txtMail3};
现在为您的桌子检索阅读器后
int idx = 0;
while(reader.Read() && idx < names.Length)
{
names[idx].Text = reader.GetString(0);
mails[idx].Text = reader.GetString(1);
idx++;
}
当然,此解决方案受到您的声明的严格限制:它将始终返回3行