C#SQL标签打印出来

时间:2018-02-12 22:08:27

标签: c# sql

假设我有一个名为Login的SQL数据库,并且其中有一个名为LoggedIn的表,列 name clockin ,我们不知道有多少行它有。

在C#中,我想将所有这些数据打印成单独的标签,如下所示:

Label Image

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;
        }

    }

}

目前这是我的代码。我对其他解决这个问题的方法持开放态度。

1 个答案:

答案 0 :(得分:1)

不要为此创建或设置单独的控件,而不是在表单上,​​甚至不在循环中。

相反,寻找一个允许绑定到数据源的选项。 DataGridFlowLayoutPanel控件都是不错的选择。

假设您已经设置了列和映射的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;
}

那就是它。