【问题标题】:Inserting Record using DataSet使用数据集插入记录
【发布时间】:2014-05-06 08:37:22
【问题描述】:

我正在开发一个应用程序,我想在其中插入来自 DataSet 的数据。

以下是我插入数据的代码:

WebForm1.aspx.cs:

 public void Recieve_Data()
    {
        DataGridView.DataSource = obj.Get_Data();
        DataGridView.DataBind();
    }

    public void Insert_Data()
    {
       TextBox StudentID = DataGridView.FooterRow.FindControl("TxtID") as TextBox;
       TextBox StudentName = DataGridView.FooterRow.FindControl("TxtName") as TextBox;
       TextBox StudentSex = DataGridView.FooterRow.FindControl("TxtSex") as TextBox;
       TextBox StudentCity = DataGridView.FooterRow.FindControl("TxtCity") as TextBox;

       int StuID = Convert.ToInt32(StudentID.Text);
       string StuName = StudentName.Text;
       string StuSex = StudentSex.Text;
       string StuCity = StudentCity.Text;

       obj.Insert_Data(StuID, StuName,StuSex, StuCity);          
       Recieve_Data();
    }

我的 Insert_Data() 是:

public void Insert_Data(int StuID, string StuName, string StuSex, string StuCity)
    {
        adap = new SqlDataAdapter("select * from Student", con);
        DataSet ds = new DataSet();
        adap.Fill(ds,"Student");

        DataRow dr = ds.Tables[0].NewRow();
        dr["ID"] = StuID;
        dr["Name"] = StuName;
        dr["Sex"] = StuSex;
        dr["City"] = StuCity;
        ds.Tables[0].Rows.Add(dr);
        ds.Tables[0].AcceptChanges();
    }

我终于成功接收到数据集中新插入的记录(第七条记录):

但是在数据库中,我的表并没有更新到第七行:

【问题讨论】:

  • 您更新的数据库将位于bin 目录中。检查那个数据库。

标签: c# asp.net sql ado.net


【解决方案1】:
public void Insert_Data(int StuID, string StuName, string StuSex, string StuCity)
{
    adap = new SqlDataAdapter("select * from Student", con);
    SqlCommandBuilder cmdBuilder=new SqlCommandBuilder(adap);
    DataSet ds = new DataSet();
    adap.Fill(ds,"Student");

    DataRow dr = ds.Tables[0].NewRow();
    dr["ID"] = StuID;
    dr["Name"] = StuName;
    dr["Sex"] = StuSex;
    dr["City"] = StuCity;
    ds.Tables[0].Rows.Add(dr);
    ds.Tables[0].AcceptChanges();
    adap.Update(ds, "Student"); 
}

// 注意:要在DB中反映这些变化,您必须调用SqlDataAdapter的“Update”方法,并且更新方法需要Insert/update/Delete命令对DB执行这些操作。我已经使用 SqlcommandBuilder 生成了 Insert/update/Delete,Student 表必须有主键才能使用 SqlcommandBuilder 生成 insert/update/delete 命令。

【讨论】:

  • 这就是问题..没有错误。仍然显示第 7 行,但数据库仍然没有显示插入的行。
猜你喜欢
  • 2011-10-28
  • 1970-01-01
  • 2010-11-18
  • 1970-01-01
  • 1970-01-01
  • 2020-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多