问题是这样的,有两个web窗体,第一个窗体里有一个 datagrid控件 和一个“添加记录”按钮,datagrid控件里有一列“编辑”列。当点击“添加记录”或“编辑”时跳到第二个窗体输入每个字段的值,然后保存返回。“添加” 和“编辑”都是在第二个窗体进行,要怎么区分是“添加”还是“编辑”,要怎么更新数据到数据库里。"编辑"时必须要在第二个窗体显示第一个窗体选择进行"编辑"的内容,还有表里面有一个字段是唯一的,在第二个窗体更新数据时要进行判断。(使用ado.net操作)谢谢!

解决方案 »

  1.   

    其实你肯定需要搞一个hidden得字段作为主键。   新添 把它赋值成一个比较特别得 比如-1什么得。
    如果是编辑, 这个字段还是以前得那个主键值不变。   当最后提交得时候, 当然就可以判断得出来了。
      

  2.   

    A页面
    添加记录为button1
    编辑按钮为button2
    在button1的点击事件里
    Response.Redirect("edit.aspx?action=add");
    在button2的点击事件里
    Response.Redirect("edit.aspx?action=edit&id="+e.items.Cell[0].Text.ToString()+"") //e.items.Cell[0]为你绑定到DataGrid中数据表的关键字(比如说用户表中的user_id),B页面(修改或添加页面)
    根据Request.QueryString["action"]的值来判断是修改还是添加新值
    if(Request.QueryString["action"].ToString()=="add")
    {
            //这是添加
    }
    else
    {
            //这是修改
    }
      

  3.   

    e.items.Cell[0]  0表示你绑定到DataGrid中的第一列值
      

  4.   

    在打开第二个窗体时价一个参数来表示,编辑还是添加
    例如:"form2.aspx?aa=edit" 或 "form2.aspx?aa=add"
    然后在第二个窗体用request来判断。
      

  5.   

    非常感谢,现在添加修改都可以判断了,但在更新数据时要怎么来判断一个字段的值在数据库表里的唯一性比如字段  “user_id”唯一性,怎么更新数据比较合理!
      

  6.   

    用DataKeyField属性为user_id
    new bizlogic.dbaccount().update_account
    (gridusers.DataKeys[e.Item.DataSetIndex].ToString(),passwd,name,popadd,emailadd);
      

  7.   

    在第一个webform wf1中打开第二个webform wf2时,如果是现在的记录,就把其主键传过去,否则传入空参数。在wf2中保存时,使wf1刷新,以显示更新。
      

  8.   

    在第二个窗体里,要不要把每个输入数据的文本框绑定到数据集里,如myDataset的表"userManage"的.如过用绑定的话,那应该要在mydataset定位在第一个窗体里所选择要 “修改”的记录的位置,只要这样子修改的时候才不会把别的记录修改掉,但要如何定位呢?那如果不用绑定的又该怎么做啊?恳请各路高手帮忙,我是asp.net菜鸟。
      

  9.   

    wangdequan1024(紫夜)说的对,就是用querystring,?action=Edit or ?action=Add来区分
      

  10.   

    wangdequan1024(紫夜)
    asp时就这么用的