SqlConnection conn = new SqlConnection("Server=(local);User id=sa;Pwd=;Database=wage");
String strsql="INSERT INTO user_load (user_Name,user_psw) Values ('"+TextBox1.Text.Trim()+"','"+TextBox2.Text+"')";
   SqlCommand insertcomm=new SqlCommand (strsql,conn);
   SqlDataAdapter da=new SqlDataAdapter();
   conn.Open ();
            da.InsertCommand =insertcomm;
   DataSet ds=new DataSet();
   da.Fill(ds,"staff");
   da.InsertCommand.ExecuteNonQuery();
            DataGrid1.DataSource =ds.Tables["staff"].DefaultView;
   DataGrid1.DataBind();
   conn.Close ();
如题,我只想使用dataadapter对象来完成这个操作!请大家帮忙!谢谢!
弹出的错误是:在调用fill之前,selectcommand尚未初始化!
我使用的是insertcommand,关selectcommand什么事啊?

解决方案 »

  1.   

    fill方法就是查询数据库填充数据源,而你用的insert语句还不如丢给command来执行
      

  2.   

    你用了这个 da.Fill(ds,"staff"); 当然就需要selectcommand了
      

  3.   

    看了这段代码,不知道楼主到底想干什么,如果你仅仅想执行一个insert语句,那根本就不需要dataadapter,
    SqlConnection conn = new SqlConnection("Server=(local);User id=sa;Pwd=;Database=wage");
    String strsql="INSERT INTO user_load (user_Name,user_psw) Values ('"+TextBox1.Text.Trim()+"','"+TextBox2.Text+"')";
       SqlCommand insertcomm=new SqlCommand (strsql,conn);
      conn.Open ();
               
                insertcomm.ExecuteNonQuery();
                conn.Close ();
      

  4.   

    da.Fill(ds,"staff");
    这一句需要selectcommand,要不然它怎么知道你要fill什么东西
      

  5.   

    如果楼主只想insert,这么写就行了
    SqlConnection conn = new SqlConnection("Server=(local);User id=sa;Pwd=;Database=wage");
    String strsql="INSERT INTO user_load (user_Name,user_psw) Values ('"+TextBox1.Text.Trim()+"','"+TextBox2.Text+"')";
       SqlCommand insertcomm=new SqlCommand (strsql,conn);
       conn.Open ();
                insertCommand.ExecuteNonQuery();
                conn.Close ();
      

  6.   

    既然要查询肯定涉及到selectcommand,按你的要求用fill也实现不了倒不如用command来执行