有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何更新数据集中的现有记录

我似乎无法使用强类型数据集更新表中的现有记录。我可以添加一个新记录,但如果我对现有记录进行更改,它将不起作用

这是我的密码:

 private void AddEmplMaster()
 {           
     dsEmplMast dsEmpMst = new dsEmplMast();

     SqlConnection cn = new SqlConnection();
     cn.ConnectionString = System.Configuration.ConfigurationSettings.AppSettings["cn.ConnectionString"];

     SqlDataAdapter da1 = new SqlDataAdapter("SELECT * FROM UPR00100", cn);
     SqlCommandBuilder cb1 = new SqlCommandBuilder(da1);

     da1.Fill(dsEmpMst.UPR00100);

     DataTable dtMst = UpdateEmpMst(dsEmpMst);
     da1.Update(dsEmpMst.UPR00100);
 }  

从上面调用此过程以将更改的字段分配给记录:

private DataTable UpdateEmpMst(dsEmplMast dsEmpMst)
{  
    DataTable dtMst = new DataTable();

    try
    {               
        dsEmplMast.UPR00100Row empRow =  dsEmpMst.UPR00100.NewUPR00100Row();

        empRow.EMPLOYID = txtEmplId.Text.Trim();
        empRow.LASTNAME = txtLastName.Text.Trim();
        empRow.FRSTNAME = txtFirstName.Text.Trim();
        empRow.MIDLNAME = txtMidName.Text.Trim();
        empRow.ADRSCODE = "PRIMARY";
        empRow.SOCSCNUM = txtSSN.Text.Trim();
        empRow.DEPRTMNT = ddlDept.SelectedValue.Trim();
        empRow.JOBTITLE = txtJobTitle.Text.Trim();
        empRow.STRTDATE = DateTime.Today;
        empRow.EMPLOYMENTTYPE = "1";

        dsEmpMst.UPR00100.Rows.Add(empRow);

    }
    catch { }
    return dtMst;
}  

多谢各位

更新:

好吧,我知道了。{cd1}如果我的记录存在,那么我必须首先检查它。如果没有,则创建要添加的新记录。我补充说:

try
{
    dsEmplMast.UPR00100Row empRow; 
    empRow = dsEmpMst.UPR00100.FindByEMPLOYID(txtEmplId.Text.Trim());

    if (empRow == null)
    {
         empRow = dsEmpMst.UPR00100.NewUPR00100Row();
         dsEmpMst.UPR00100.Rows.Add(empRow);
    }  

然后我将数据分配给我创建并更新的新empRow


共 (1) 个答案

  1. # 1 楼答案

    为了编辑数据集中的现有记录,您需要访问特定行中的特定数据列。类型化和非类型化数据集中的数据都可以通过以下方式访问: 使用表、行和列集合的索引。 通过将表名和列名作为字符串传递给各自的集合。 尽管类型化数据集可以使用与非类型化数据集相同的语法,但使用类型化数据集还有其他优点。有关更多信息,请参阅下面的“使用类型化数据集更新现有记录”部分。 更新类型化或非类型化数据集中的现有记录 将值指定给DataRow对象中的特定列。 非类型化数据集的表名和列名在设计时不可用,必须通过各自的索引进行访问