有一个问题请教一下有没有办法.下面是代码.
有一个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这样的方法来检测字段是否存在,就不用报错了.

解决方案 »

  1.   

    int i=1; 
    if (i==1){ 
      for(int i=0;i<txt.tables[0].columns.count;i++)
      {
        if (txt.tables[0].columns[i].name=="字段1")
         {
           string txt1=txt.tables[0].rows[0]["字段1"].tostring();  //i=1的时候字段2为空 
         }
      }
      
    }else{ for(int i=0;i<txt.tables[0].columns.count;i++)
      {
        if (txt.tables[0].columns[i].name=="字段2")
         {
           string txt1=txt.tables[0].rows[0]["字段2"].tostring();  //i!=1的时候字段1为空      }
      }
    大概就这意思,判断下列名存在不存在再说  } 
      

  2.   

    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();  
    }
      

  3.   

    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();  
     } 
    楼主这样应该可以了
      

  4.   

    Columns.Contains列有Contains这个字段吗?
      

  5.   

    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());  
      

  6.   

    这里有你的解决方案
    http://www.zsn123.cn