使用
DataSet.Tables[0].Columns[0].Expression 
试试

解决方案 »

  1.   

    参考
    private void button2_Click(object sender, System.EventArgs e)
    {
    DataTable dt = new DataTable();
    dt.Columns.Add("sfzh",typeof(System.String));
    dt.Columns.Add("zkzh",typeof(System.String));
    DataRow dr1 = dt.NewRow();
    dr1.BeginEdit();
    dr1["sfzh"] = "120104780726435";
    dr1.EndEdit();
    DataRow dr2 = dt.NewRow();
    dr2.BeginEdit();
    dr2["sfzh"] = "110105790602876";
    dr2.EndEdit();
    DataRow dr3 = dt.NewRow();
    dr3.BeginEdit();
    dr3["sfzh"] = "150103800420127";
    dr3.EndEdit();
    dt.Rows.Add(dr1);
    dt.Rows.Add(dr2);
    dt.Rows.Add(dr3);
    this.dataGrid1.DataSource = dt.DefaultView;
    int number=1;
    foreach(DataRow dr in dt.Rows)
    {
    string str = dr["sfzh"].ToString().Trim().Substring(0,3);
    str = str +"2000";
    for(int i=3;i>number.ToString().Trim().Length;i--)
    {
    str = str+"0";
    }
    str = str +number.ToString();
    dr.BeginEdit();
    dr["zkzh"] = str;
    str = "";
    number++;
          }
    }
      

  2.   

    可以在datatable的RowChanged事件中进行
      

  3.   

    1、截取数据表“身份证号码”列里的前三位作为它的前三位,这个不难吧?
    2、然后第四位是2,第五位到第七位是000就不用说 了
    3、第八位到第十位自动从001累加,你可用定义一个变量,
       然后循环自增,
       例如
       for(int i=1;;i++)
       {
    string str=i.ToString().PadLeft(3,'0');
             ...判断什么时候跳出循环...
       }
      

  4.   

    用foreach(DataRow row in dataset.tables["table"].rows)来计算赋值吧
      

  5.   

    确实象xrascal说的那样  
    报错信息说“终止时间3”是 DBNull
    应该怎样编写代码呀,谢谢
      

  6.   

    //假如你要操作的表的名字(ID)是dt:
    //也就是说你如果用到了数据集了,那么
    //DataTable dt = DataSet.Tables["你的表名"];
    for(int i=0;i<dt.Rows.Count;i++)
    {
    string str = dt.Rows[i]["身份证号码"].ToString();
             str = str.Substring(0,3)+"2000"+(i+1).ToString().PadLeft(3,'0');
    dt.Rows[i]["准考证号码"] = str;
    }
    如果还有不理解的地方再问我吧。