假设我有一个名为Login的SQL数据库,其中有一个名为LoggedIn的表,其中有列名称和clockin,我们不知道它有多少行。
在C#中,我希望将所有这些数据打印到单独的标签中,如下所示:

SqlConnection con = new SqlConnection(@"Data Source = (LocalDB)\MSSQLLocalDB; AttachDbFilename = C:\Users\gregg\Desktop\KFC\Data.mdf; Integrated Security = True; Connect Timeout = 30");
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(query, con);
con.Open();
da.Fill(dt);
con.Close();
int x = 1;
DataRow row1 = dt.Rows[x];
for (int i = 0; i < x; i++)
{
if (row1 == null)
{
MessageBox.Show("ERROR");
}
else
{
switch (x)
{
case 1:
label1.Text = row1["name"].ToString();
label4.Text = row1["clockin"].ToString();
x++;
break;
case 2:
label2.Text = row1["name"].ToString();
label5.Text = row1["clockin"].ToString();
x++;
break;
case 3:
label3.Text = row1["name"].ToString();
label6.Text = row1["clockin"].ToString();
x++;
break;
case 4:
label7.Text = row1["name"].ToString();
label8.Text = row1["clockin"].ToString();
x++;
break;
default: MessageBox.Show("ERROR");
break;
}
}
}目前这是我这部分的代码。我对解决这个问题的其他方法持开放态度。
发布于 2018-02-12 22:20:13
不要为此创建或设置单独的控件,不要在窗体上,甚至在循环中。
相反,寻找一个允许将绑定到数据源的选项。DataGrid和FlowLayoutPanel控件在这里都是很好的选择。
假设已经设置了列和映射的DataGrid,代码如下所示:
DataTable dt = new DataTable();
using (var con = new SqlConnection(@"Data Source = (LocalDB)\MSSQLLocalDB; AttachDbFilename = C:\Users\gregg\Desktop\KFC\Data.mdf; Integrated Security = True; Connect Timeout = 30"))
{
SqlDataAdapter da = new SqlDataAdapter(query, con);
da.Fill(dt);
DataGrid1.DataSource = dt;
}就这样。
https://stackoverflow.com/questions/48756332
复制相似问题