我现在有一个数据集 ds ,我需要查询第一张表的第一列里所有是 abc 的字段
然后将它改为abcd,我写的代码是
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
    {
       if (ds.Tables[0].Rows[i][1].ToString() == "ad")
       ds.Tables[0].Rows[i][1] = "abcd";
    }
这样肯定是不行的,我需要怎么改?或者是我本身想法都错了,我要达到效果该怎么做?

解决方案 »

  1.   

    Rows[i][0].ToString() 
    这里我知道错了!
      

  2.   

    既然都是abc,查询时直接变abcd吧select 'abcd' as col from tbname
    where col='abc'
      

  3.   

    回2楼,这样肯定不行哦
    我这列有abc,也有ab,还有a,
    我只要将abc改成abcd
      

  4.   

    for (int i = 0; i  < ds.Tables[0].Rows.Count; i++) 
        { 
           if (ds.Tables[0].Rows[i][1].ToString() == "adc") //你写成“ab”啦
           ds.Tables[0].Rows[i][1] = "abcd"; 
        } 
      

  5.   

    for (int i = 0; i   < ds.Tables[0].Rows.Count; i++)  
        {  
           if (ds.Tables[0].Rows[i][1].ToString() == "abc") //你写成“ad”啦 
           ds.Tables[0].Rows[i][1] = "abcd";  
        } 不知道是不是这个错了
      

  6.   

    楼主用sql行吗?select case when col='abc' then 'abcd' else col end as col ,*
    from tbname'col'就是你的列名
      

  7.   

    思路正确,只是列下标错了
    第一列应该是0
    还有啊,这种事情是需要显示的吗,不需要的话就在数据库中sql改了算了,提高效率
      

  8.   

    不知道DataTable有Select方法吗?
    DataTable dt=ds.Tables[0];
    string cn=dt.Columns[0].ColumnName;
    DataRow[] drs=dt.Select(cn+"='abc'");
    foreach(DataRow dr in drs)
    {
       dr[cn]="abcd";
    }