C# DataSet查看返回结果集

本文详细介绍了在C#中如何使用DataSet从数据库查询数据,并提供了处理查询结果的技巧,包括如何避免数组越界错误,确保在访问数据前进行有效性检查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先看一段代码:     

private DataSet GetDataSet(string strsql)
{
  string strcon = "server = 192.168.2.1,1433;uid = sa ; pwd = 123456 ; database = MyDB";
  SqlConnection con = new SqlConnection(strcon);
  DataSet ds = new DataSet();
  try
     {
       SqlDataAdapter DA = new SqlDataAdapter(strsql, con);
        DA.Fill(ds, "tb");
     }
   catch (SqlException E)
     {
          throw new Exception(E.Message);
     }
     con.Close();//关闭数据库
     return ds;
}

以上是连接数据库,查询数据库并返回结果集。

主要看DataSet ds 返回值,怎么去获取返回的数据,ds.Tables.Count值为返回的表的数量。

如果查询sql语句中只有一个select,则返回一个table:

如果有10个select就会返回10个table:

ds.Tables[0].Rows.Count的值为第一个表数据的条数。(下面有23条数据)

ds.Tables[0].Rows[0].ItemArray[0]为第一个表,第一条数据的第一个值。

看到这里就应该知道怎么取返回结果集的数了,但是要注意一点,如果返回的某条数据本身就没有,

比如:查询的结果ds.Tables[0].Rows.Count=0,也就是说第一个表的数据条数为0,取值的时候程序写ds.Tables[0].Rows[0]就会报错,和数组越界是同样的(一个动态数组没分配空间就去访问就会报“访问越界”),所以这里面的数组应该都是动态数组。

因此,在取值前先判断一下ds.Tables.Count以及ds.Tables[0].Rows.Count等等的Count的大小,大于0再取值。一般都会使用for和while循环的取值,里面本来就带了判断条件,但在单个取值的时候一定要小心。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值