string str="server=localhost;uid=sa;pwd=;database=test";
              SqlConnection conn=new SqlConnection(str);
              //conn.Open();
              string sql="select * from stores";
              SqlDataAdapter adapter=new SqlDataAdapter(sql,conn);
              DataSet dataset=new DataSet();
              adapter.Fill(dataset,"stores");
              DataTable table=dataset.Tables["stores"];
              DataRow myrow=table.NewRow();
              myrow["stor_id"]=9999;
              myrow["stor_name"]="king";
              myrow["stor_address"]="hazu";
              myrow["city"]="wuhan";
              myrow["state"]="china";
              myrow["zip"]="12345";
              table.Rows.Add(myrow);
              adapter.Update(dataset,"stores");
这段代码是在WINDOWS应用程序里面的,不知道为什么不能更新数据库呢??
更新数据库到底怎么样进行呀?有没有这方面的详细点的资料呀?兄弟们帮帮小弟忙呀!!!

解决方案 »

  1.   

    你没有指定
    adapter的InsertCommand
    你可以使用CommandBuilder直接生成命令
    cb=new SqlCommandBuilder(adapter);
      

  2.   

    我的代码中写得是在表中加入新行,而且已经给新行付直了,然后也更新了,应该就可以在数据库中增加上面的数据的呀?
    我在以前的ADO里面好象是可以这样的呀?
    为什么在ADO。NET就不行呢?
    楼上的兄弟说加InsertCommand
    应该怎么样加呀?
    请帮我写代码谢谢。
      

  3.   

    string str="server=localhost;uid=sa;pwd=;database=test";
                  SqlConnection conn=new SqlConnection(str);
                  
                  string sql="select * from stores";
                  SqlDataAdapter adapter=new SqlDataAdapter(sql,conn);
                  SqlCommandBuilder cb=new SqlCommandBuilder(adapter);//1
                  DataSet dataset=new DataSet();
                  conn.Open();                  //2
                  adapter.Fill(dataset,"stores");
                  DataTable table=dataset.Tables["stores"];
                  DataRow myrow=table.NewRow();
                  myrow["stor_id"]=9999;
                  myrow["stor_name"]="king";
                  myrow["stor_address"]="hazu";
                  myrow["city"]="wuhan";
                  myrow["state"]="china";
                  myrow["zip"]="12345";
                  table.Rows.Add(myrow);
                  adapter.Update(dataset,"stores");
                  conn.Close();               //3
    这样就可以啦,注意我添加的这三行。
      

  4.   

    楼上的方法我试过了,还是不行呀?
    请大家帮帮忙呀
    我是新手,对数据库操作真是不通呀
    特别是那几个关于数据库的类,我就是弄不怎么明白,MSDN里面讲得太专业话,有没有大哥能够给我讲讲那几个类,或是在哪里可以找到那几个类的资料呀。
    我加分请大家帮忙呀!!
      

  5.   

    table.Rows.Add(myrow);
    这句更新的是table,而不是dataSet,所以table可以去掉换成这一句:
    dataset.Tables["stores"].Rows.Add(myrow);最前面再加一句
    SqlCommandBuilder cb=new SqlCommandBuilder(adapter);
    这句用来自动生成adapter的updatecommand,insertcommand,deletecommand,当然你也可以自己写------------------------------------
      

  6.   

    string str="server=localhost;uid=sa;pwd=;database=test";
    SqlConnection conn=new SqlConnection(str);
    SqlDataAdapter adapter=new SqlDataAdapter("select * from stores",conn);
    SqlCommandBuilder scb=new SqlCommandBuilder(adapter);
    conn.Open();
    DataSet ds=new DataSet();
    adapter.Fill(ds,"stores");
    conn.Close();
         DataTable dt=ds.Tables["stores"];
    DataRow myrow=dt.NewRow();
    myrow["stor_id"]=9999;
    myrow["stor_name"]="king";
    myrow["stor_address"]="hazu";
    myrow["city"]="wuhan";
    myrow["state"]="china";
    myrow["zip"]="12345";
    ds.Tables["stores"].Rows.Add(myrow);
    adapter.Update(ds,"stores");
    Console.WriteLine("修改成功");
    Console.Read();我这样还是不行 不知道是怎么回事呀??