DataKeyField不一定是一个字段,它可以是多个字段的组合,例如“编号”和“日期”

解决方案 »

  1.   

    DataKeyField“编号”和“日期”
      

  2.   

    你在dataGrid里添加一个checkBox,就可以只编辑或修改你需要的记录了
      

  3.   

    建议在你的数据库里面新增一个字段rowguid,default value设置为(newid()),将此字段作为你的key.让他隐藏的绑定在datagrid中.
    可根据此字段来新增和更新!!
      

  4.   

    可以在DATAGIRD中做若干列隐藏列,把能确定记录唯一的条件字段一一绑定(需要多少字段就设定多少隐藏列),做操作的时候取出来作为更新和删除时的判断条件
      

  5.   

    方法有很多
    1.可以在datagrid中加一个模板列,在模板列中加checkbox,以这个来检查是否要修改或是删除.
    2.就是以多字段组合.
    3."我想使用数据库中的那个序列号值"序列号值是不是在同一个表中,如果是,就可以用
      

  6.   

    感谢各位  我觉得在模板列中增加checkbox最对我这个数据库有用 其它朋友说的添加什么新字段 那是不可能的 。因为请大家看我的数据库结构 难道用户每添加一个数据就要添加一个新的字段值么?这个值难确保唯一。而且用户操作显得很烦琐。
    但是小弟不才 不知道添加checkbox后怎么用语句判断查询。请各位大虾给出一段代码
    delete from table where ???????
      

  7.   

    private void Button2_Click(object sender, System.EventArgs e)
    {
    sqlConnection1.Open();
    SqlCommand cmd=new SqlCommand("update jobs set job_desc=@job_desc where job_id=@job_id", sqlConnection1);
    cmd.Parameters.Add(new SqlParameter("@job_id",SqlDbType.SmallInt,2));
    cmd.Parameters.Add(new SqlParameter("@job_desc",SqlDbType.VarChar,50));
    foreach (DataGridItem item in DataGrid1.Items)
    {
    CheckBox cb=(CheckBox)item.Controls[1];
    if (cb.Checked)
    {
    Label lbl=(Label)item.Controls[3];
    TextBox txt=(TextBox)item.Controls[5];
    cmd.Parameters["@job_id"].Value=lbl.Text;
    cmd.Parameters["@job_desc"].Value=txt.Text;
    cmd.ExecuteNonQuery();
    }
    }
    sqlConnection1.Close();
    Binddata();//自己写的绑定方法
    }
      

  8.   

    sqlConnection1.ConnectionString = //这里的格式该怎么写呀?