我想用下述方法在 T_Student 表中增加一条记录,在DataGrid1 中能看出记录有增加。 但数据库中 T_Student表中并没有增加这条记录。。 请问怎么回事? Insert into 我会。。  先试如下代码,是因为我最终的目的是想 将 Excel表中的一批学生信息增加到 T_Student表中。。  可现在一条记录都不能增加。。  private void Button1_Click(object sender, System.EventArgs e)
{
cn = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
cn.Open();
SqlDataAdapter ada=new SqlDataAdapter ("Select * from T_Student",cn);
DataSet ds=new DataSet(); 
ada.Fill(ds,"T_Student");
DataRow dr=ds.Tables["T_Student"].NewRow();
dr["StuID"]="12345678";
dr["StuName"]="张天";
dr["StuPWD"]="fff";
dr["StuSex"]="男";
dr["Class"]="计999";
dr["StuAddress"]="枯棋无可厚非无可厚非无可厚非";
ds.Tables["T_Student"].Rows.Add(dr);
ds.Tables["T_Student"].AcceptChanges();
ada.Update(ds,"T_Student");
DataGrid1.DataSource=ds;
DataGrid1.DataBind();
if (cn != null)
cn.Close();
}

解决方案 »

  1.   

    你这个只对DATASET有操作有啥用,根本就没对你的数据库有操作嘛,当然没有加进去了,我晕。DATASET只是一个内存上的形式。。 private void Button1_Click(object sender, System.EventArgs e)
    {
    cn = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
    cn.Open();
    SqlDataAdapter ada=new SqlDataAdapter ("Select * from T_Student",cn);
    DataSet ds=new DataSet(); 
    ada.Fill(ds,"T_Student");
                               ada.InsertCommand = New SqlCommand("insert test_fs(fenshu) values('60,70,80')", conn);         ''这里的insert语句是我自己随便写的一句,你自己根据你的写一下就好了
    DataRow dr=ds.Tables["T_Student"].NewRow();
    dr["StuID"]="12345678";
    dr["StuName"]="张天";
    dr["StuPWD"]="fff";
    dr["StuSex"]="男";
    dr["Class"]="计999";
    dr["StuAddress"]="枯棋无可厚非无可厚非无可厚非";
    ds.Tables["T_Student"].Rows.Add(dr);
    ds.Tables["T_Student"].AcceptChanges();
    ada.Update(ds,"T_Student");
    DataGrid1.DataSource=ds;
    DataGrid1.DataBind();
    if (cn != null)
    cn.Close();
    }
      

  2.   

    那如果是批输入一个Excel 表中的N多条记录,怎么办? 一条一条加,用Insert into 个存储过程就行了。这个我知道。。 把我代码中 ds.Tables["T_Student"].AcceptChanges(); 去掉。 就会出现错误 如下述
    “/WebApplication3”应用程序中的服务器错误。
    --------------------------------------------------------------------------------当传递具有新行的 DataRow 集合时,更新要求有效的 InsertCommand。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidOperationException: 当传递具有新行的 DataRow 集合时,更新要求有效的 InsertCommand。源错误: 
    行 77:  Label1.Text=dr.RowState.ToString();
    行 78:  //ada.Update(ds);
    行 79:  Button2.Text=ada.Update(ds,"t1").ToString();
    行 80:  DataGrid1.DataSource=ds;
    行 81:  DataGrid1.DataBind();
     
      

  3.   

    To; hackate(~兰心*-*寒~ | 网站: http://www.7to.net)   谢谢你。  单条这样是可以的。可我的目的是想将一个Excel表中的 N条记录 一次性导入到数据库。 当然,先将Excel表中的数据导入到一个 DataSet 中。 接下来怎么做?