从数据库中检索数据并计算第二行并在标签中显示它

时间:2013-01-09 10:52:30

标签: c# asp.net sql sql-server ado.net

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中的第3行值

例如:

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

如果它具有值

sno    pnrnumber
1       21
2       22
3       23

2 个答案:

答案 0 :(得分: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();  
    }
  }
}

答案 1 :(得分: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();

我无法理解你为什么试图通过这句话来填充列:

select top 3 pnrnumber 

您只获得了列pnrnumber