dataset显示的内容通过修改sql,使其内容显示了嵌套查询的内容,现在如果对其修改后,要保存,应该怎么处理啊???
它对应的update方法调用的sql语句应该相应的发生变化,这个怎么处理呢?

解决方案 »

  1.   

    前一段时间在做这个事,不过我用的ACCESS,因为我是学生,不需要用Oracle,Sql server 也可以用
    我修改数据后一般都用向导生成的TableAdapter来更新ACCESS数据库,很方便,一句话就ok了。(前提是使用向导生成的DataSet)
      

  2.   

         
    string strSql="update table set ....";
      string strConnection = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
            SqlConnection msConn = new SqlConnection(strConnection);
     SqlCommand mscomm = new SqlCommand(strSql, msConn);
            if (mscomm.ExecuteNonQuery() > 0)
            {
                Response.Write("修改成功");
            }
            else
            {
                Response.Write("失败");
            }
      

  3.   

    这个我觉得属于SQL语句的范畴吧。
    update tableName set column1=value1,....
      

  4.   

    比如前台datagrid view的dataset是通过复杂的嵌套语句显示的。比如有这样一个表
    tb
    parentID childID name 
    0          0    A 
    0          1    B 
    0          2    C 
    1          3    D 
    1          4    E 
    3          5    F 
    3          6    G 我们在前台显示的时候,不可能显示parentID只能显示ID号码,应该显示对应的名称。比如dataset的fill方法使用如下语句
    select ParentName = (select name from tb where childID = a.parentID) ,name from tb a 但是对应的insert方法就会出现问题。
    因为我们存入数据库表的应该是 parentID,childID,name。childID使用identiy自增,
    那么parentID,就没有办法获取了。很苦恼
      

  5.   

    SqlCommand cmd = new SqlCommand();
    cmd.CommandText="update 表名 set 字段1=@字段1 where 主键=@主键";
    cmd.Parameters.Add(new SqlParameter("@参数1",SqlDbType.VarChar,50,"字段名"))SqlDataAdapter da = new SqlDataAdapter();
    da.UpdateCommand = cmd;
      

  6.   


    他的意思是动态添加update语句 这样就可动态改变commandtext语句
    然后
    DataSet d=new DataSet();
    da.fill(ds)
      

  7.   

    http://topic.csdn.net/t/20051205/09/4437895.html
      

  8.   


    字段1=@字段1~~~这里?
    比如dataset不是整体提交么。用户一次性插入或者修改了多条记录。
    那这个参数??怎么处理的呢?
      

  9.   

    SQL语句 只是一个 STRING变量...
    STRING是可以+=  的
    再建立 SQL语句之前
    完全可以用 一个变量来决定 生成什么样的SQL语句。。
    所以我觉得....貌似没那么复杂
      

  10.   

    如果要insert 楼主你的select语句不对
    应该是 select ParentName =parentID, (select name from tb where childID = a.parentID) ,name from tb a
    在数据源的显示控件中不显示parentID列
    不要用自动生成的Updata语句
    用INSERT INTO a
          (parentID,name )
    VALUES (@parentID,@name )
      

  11.   

    字段1=@字段1~~~这里? 
    比如dataset不是整体提交么。用户一次性。 
    那这个参数??怎么处理的呢? 
    ---------------------------------
    插入或者修改了多条记录,在执行DataAdapter的Update方法时会多次执行InsertCommand 或者UpdateCommand
    参数值是受影响的那一行的数据
      

  12.   

    1.你结合自动给你生成的INSERT 语句看看就知道了 
    2.在DataAdapter.Update的时候不需要去你去处理@parentID,@name 这些参数
    2.DataAdapter.Update的一般INSERT工作机制是把DataTable里面所有RowState=Added 的行去INSERT ,会把这些行的字段值分别加入到参数里面。一行一行的INSERT