日期:2014-05-18  浏览次数:20543 次

请教一个关于读取Dataset数据的问题
有一个问题请教一下有没有办法.下面是代码.
有一个Dataset类型的变量txt,
int i=1;
if (i==1){
  string txt1=txt.tables[0].rows[0]["字段1"].tostring(); //i=1的时候字段2为空
}else{
  string txt1=txt.tables[0].rows[0]["字段2"].tostring(); //i!=1的时候字段1为空
}
代码中我没注意大小写,可能还有其他问题大家不要考虑.类似这样的代码在运行的时候总是会报错,不是字段1处错误就是字段2处错误.
如果不报错的话用try{}应该可以吧,我想请教一下大家如果不用try{}还有别的代码少的办法吗?
比如txt.check.tables[0].rows[0]["字段1"] //有没有类似check这样的方法来检测字段是否存在,就不用报错了.

------解决方案--------------------
帮顶
------解决方案--------------------
C# code


string txt1=null;
string txt2=null;

if (ds.Tables[0].Columns.Contains("字段1"))
{
    txt1=txt.tables[0].rows[0]["字段1"].tostring();
}
if (ds.Tables[0].Columns.Contains("字段2"))
{
    txt2=txt.tables[0].rows[0]["字段2"].tostring();  
}

------解决方案--------------------
int i=1; 
if (i==1){ 
string txt1=txt.tables[0].rows[0]["字段1"].tostring()== "" ? "" :txt.tables[0].rows[0]["字段1"].tostring();
}else{ 
string txt1=txt.tables[0].rows[0]["字段2"].tostring()== "" ? "" :txt.tables[0].rows[0]["字段2"].tostring();
 } 
楼主这样应该可以了
------解决方案--------------------
for(int i=0;i<txt.tables[0].rows.count;i++)
{
string txt1=(i==1?txt1=txt.tables[0].rows[0]["字段1"].tostring():txt.tables[0].rows[0]["字段2"].tostring());
}