方法如下,代码是手写的没有经过测试如有错误还请自行更正(只是给个思路,也没有考虑数据类型等其他因素):
private String getSQLString(ArrayList objFields)
{
   String strSql="update tb_room_source set "
   for(int i=0;i<objFields.Count;i++)
   {
        strSql+= objFields[i].ToString().Trim()+"=@"+objFields[i].ToString().Trim()+",";
   }
   strSql+="处理状态=2 where Room_ID=" +ViewState["Room_ID"].ToString().Trim();
      return strSql;
   
}private void setParameter(ArrayList objFields,ArrayList objValues,SqlCommand objCmd)
{
    for(int i=0;i<objFields.Count;i++)
   {
      cmd.Parameters.Add("@"+objFields[i].ToString().Trim(), objValues.String().Trim())
   }
}调用时:
   ArraryList ayFields=new ArrayList();   
   ayFields.Add("描述说明");
   ayFields.Add("物业权属");//这里客户添加N个字段
   ayFields.Add("建筑年代");   String strSql=this.getSQLString(ayFields);
   
   ArrayList ayValues=new ArrayList();
   ayFields.Add("描述");
   ayFields.Add("A");//这里客户添加N个字段值
   ayFields.Add("2004");   setParameter(ayFields,ayValues,cmd);

解决方案 »

  1.   

    qimini(循序渐进) 老兄,你的思路很好,但没有能解决我的问题,我的问题是:更改时,一条记录中的某数据可能是空的。下一条记录可能个数据可能又是不空的。怎么办?有没有方便的方法判断。
    是全写:
    if xxx.text<>"" then .....if xxx.text<>"" then .....
    这样一条条的写下来吗?
      

  2.   

    cmd.Parameters.Add("@描述说明", txtbOtherBZ.Text==""?"默认值":txtbOtherBZ.Text)
    cmd.Parameters.Add("@物业权属", dplWYQS.SelectedItem.Value==""?"默认值":dplWYQS.SelectedItem.Value)
    cmd.Parameters.Add("@建筑年代", txtbRYear.Text==""?"默认值":txtbRYear.Text)这个是你想要的吗?