1

伙计们,我想打印从数据库返回到标签的两条记录。我使用 dataset ,浏览列但无法绑定,因为标签没有数据源。下面是我的代码。

        SqlDataAdapter adp = new SqlDataAdapter();
        adp.SelectCommand = cmd;
        DataSet ds = new DataSet();
        adp.Fill(ds);



    if (ds.Tables[0].Rows.Count > 0)
    {
        lblClient.Enabled = true;
        lblClient.Text = Convert.ToString(ds.Tables[0].Columns[0]);
        lblBranch.Text = Convert.ToString(ds.Tables[0].Columns["Bname"]);


    }
    connection.Close();

当我尝试上述方法时。它只返回列名(即指定的字符串)。任何替代方案将不胜感激。

4

2 回答 2

2

您不想要列的文本,而是DataRow值:

lblClient.Text = ds.Tables[0].Rows[0].Field<string>(0);
lblBranch.Text = ds.Tables[0].Rows[0].Field<string>(1);

或按列名(假定为第一个名称):

lblClient.Text = ds.Tables[0].Rows[0].Field<string>("Cname");
lblBranch.Text = ds.Tables[0].Rows[0].Field<string>("Bname");

这仅在表包含至少一行时才有效。所以你必须检查一下。

于 2013-09-23T09:45:26.883 回答
1

你需要指出你想要的行。使用您的代码,您可以选择一列 DataTable

SqlDataAdapter adp = new SqlDataAdapter();
        adp.SelectCommand = cmd;
        DataSet ds = new DataSet();
        adp.Fill(ds);

if (ds.Tables[0].Rows.Count > 0)
{
    lblClient.Enabled = true;
    lblClient.Text = Convert.ToString(ds.Tables[0].Rows[0].[0]);
    lblBranch.Text = Convert.ToString(ds.Tables[0].Rows[0].["Bname"]);


}
connection.Close();
于 2013-09-23T09:47:28.453 回答