0
conn.Open();
int a, b, c;
SqlCommand cmd = new SqlCommand("select top 3 pnrnumber from pnrstatus1 where Status='waiting'", conn);
DataColumn dc;
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);

for (int i = 0; i <= ds.Tables[0].Columns.Count; i++)
{
    dc = ds.Tables[0].Columns[i];
    for (int j = 0; ; j++)
    { 
    }
}

从 pnrstatus1 中选择前 3 个 pnrnumber,其中 Status='regret'

我要秀秀

  • label1 中的第一行编号
  • label2 中的第二行值
  • label3 中的第三行值

例如:

label1==21
label2==22
label3==23

如果它有值,即表中的 pnr 编号

sno    pnrnumber
1       21
2       22
3       23
4

2 回答 2

0

您需要通过ds.Tables[0].Rows此修改访问行:

            label1.Text = ds.Tables[0].Rows[0][0].ToString();
            label2.Text = ds.Tables[0].Rows[1][0].ToString();
            label3.Text = ds.Tables[0].Rows[2][0].ToString();

在这句话中,我不明白您为什么要尝试从 for 到列:

select top 3 pnrnumber 

您只得到 pnrnumber 列

于 2013-01-09T11:00:59.220 回答
0

试试这个而不是列。并使用对象using上的语句IDisposable

conn.Open();
int a, b, c;
using(SqlCommand cmd = new SqlCommand("select top 3 pnrnumber 
from pnrstatus1 where
 Status='waiting'", conn))
{


using(SqlDataAdapter da = new SqlDataAdapter(cmd)){
    DataSet ds = new DataSet();
    da.Fill(ds);

    if(ds.Tables.Count > 0 AND ds.Tables[0].Rows.Count = 3)
    {
      Label1.Text = ds.Tables[0].Rows[0]["pnrnumber"].ToString();
      Label2.Text = ds.Tables[0].Rows[1]["pnrnumber"].ToString(); 
      Label3.Text = ds.Tables[0].Rows[2]["pnrnumber"].ToString();  
    }
  }
}
于 2013-01-09T11:00:33.830 回答