我想显示每个标签的员工ID的最后4条记录,我该怎么办?
String strSQL = @"SELECT * FROM staff";
SqlCommand myCommand = new SqlCommand(strSQL, myConn);
SqlDataReader myDataReader = myCommand.ExecuteReader();
while (myDataReader.Read())
{
Label1.Text = myDataReader["staffID"].ToString();
Label2.Text = myDataReader["staffID"].ToString();
Label3.Text = myDataReader["staffID"].ToString();
Label4.Text = myDataReader["staffID"].ToString();
} 发布于 2013-07-23 15:56:05
您必须使用这样的查询:
SELECT TOP 4 *
FROM staff
ORDER BY MyOrderColumn DESC使用这样的查询,您将获得返回给您的最后4条记录。
发布于 2013-07-23 15:57:54
首先,如果您只想要后四个,则必须只选择它们:
String strSQL = @"SELECT TOP 4 staffID FROM staff ORDER BY staffID DESC";
using(var myCommand = new SqlCommand(strSQL, myConn))
using(var dataAdapter = new SqlDataAdapter(myCommand))
{
DataTable table = new DataTable();
dataAdapter.Fill(table);
Label1.Text = table.Rows[0]["staffID"].ToString();
Label2.Text = table.Rows[1]["staffID"].ToString();
Label3.Text = table.Rows[2]["staffID"].ToString();
Label4.Text = table.Rows[3]["staffID"].ToString();
} 你必须处理员工人数少于4人的情况。
发布于 2013-07-23 15:54:10
如果这是winforms,你可以尝试这样做:
int i = 1;
while (myDataReader.Read())
{
var label = this.Controls.Find("Label" + i, false) as Label;
if (label != null)
{
label.Text = myDataReader["staffID"].ToString();
}
else
{
break;
}
i++;
}https://stackoverflow.com/questions/17804347
复制相似问题