关于DataSet

来源:互联网 发布:mwc飞控源码2.5 编辑:程序博客网 时间:2024/06/14 03:57

一 、DataSet判断是否为空

1,if(ds == null) 这是判断内存中的数据集是否为空,说明DATASET为空,行和列都不存在!!
  2,if(ds.Tables[0].Count == 0) 这应该是在内存中存在一个DATASET,但是,数据集中不存在表!!
  3,if(ds.Tables[0].Count == 1 && ds.Tables[0].Rows.Count == 0) 说明存在表table,但是,表内没有数据!

if ( yourDataSet.Tables[0].Rows.Count > 0 )
{
有记录时你要做的事情
}
else
{
返回空集
}
if (DataSet1.Tables[0].Rows.Count ==0)
{
Response.Write(““);
}
建议(yourDataSet.Tables[0].Rows.Count > 0) OR (ds.tables==null) 应该先判断是否数据集为空(查询出错时),接着判断表中的行数是否为零(查询未出错且行数是否为零),否则容易出错,
例如:先判断myDataSet.Tables[0].Rows.Count==0时,如果查询出错时,此时myDataSet为null,也就没有table,所以会报错。
故应该这样判断
if (myDataSet == null || myDataSet.Tables[0].Rows.Count == 0)
{
//为空时进行处理
}
else
{
//不为空时处理
}
“||”(or)和“&&”(and)操作符先判断第一个条件,不满足后接着判断下一条件,但如果上面顺序调换在myDataSet为null时则会出错,即先判断大的条件,接着判断小的条件

二 、DataSet的遍历

//多表多行多列的情况
foreach (DataTable dt in YourDataset.Tables) //遍历所有的datatable
{
foreach (DataRow dr in dt.Rows) ///遍历所有的行
foreach (DataColumn dc in dt.Columns) //遍历所有的列
Console.WriteLine(“{0}, {1}, {2}”, dt.TableName,
dc.ColumnName, dr[dc]); //表名,列名,单元格数据
}
//遍历一个表多行多列
foreach(DataRow mDr in dataSet.Tables[0].Rows )
{
foreach(DataColumn mDc in dataSet.Tables[0].Columns)
{
Console.WriteLine(mDr[mDc].ToString());
}
}
//遍历一个表多行一列
foreach(DataRow row in DataSet1.Tables[0].Rows)
{
Console.WriteLine(row[0].ToString());
}
//一行一列
ds.Tables[0].Rows[0][“字段”]

//访问一行中的某个元素
dr.ItemArray[i].ToString()