我做的是一个入职录入系统 有很多txt和combox,添加以后在当前form里的datagirdview里显示与绑定,但每次打开form时第一条数据添加成功后,后面的第2条就不行了,我加了断点 显示NewRow为空  代码如下private void btnsave_Click(object sender, EventArgs e)
        {
            try
            {
                SqlDataAdapter sda = new SqlDataAdapter();
                sda = sqlclass.sqlsda("select * from tb_Personnel"); ;
                DataSet ds = new DataSet();
                SqlCommandBuilder sb = new SqlCommandBuilder(sda);
                sda.Fill(ds, "tb_Personnel");                DataRow newrow = ds.Tables["tb_Personnel"].NewRow();
                newrow["EmployeeID"] = this.txtEmployeeID.Text;
                newrow["Booker"] = this.txtBooker.Text;
                newrow["EmployeeAddress"] = this.txtEmployeeAddress.Text;
                newrow["EmployeeAge"] = Convert.ToInt16(this.txtEmployeeAge.Text);
                newrow["EmployeeCollege"] = this.txtEmployeeCollege.Text;
                newrow["EmployeeIDcard"] = this.txtEmployeeIDcard.Text;
                newrow["EmployeeKultuLevel"] = this.cbbEmployeeKultuLevel.Text;
                newrow["EmployeeLongSuit"] = this.txtEmployeeLongSuit.Text;
                newrow["EmployeeMobileTel"] = this.txtEmployeeMobileTel.Text;
                newrow["EmployeeName"] = this.txtEmployeeName.Text;
                newrow["EmployeeNativePlace"] = this.txtEmployeeNativePlace.Text;
                newrow["EmployeeOther"] = Convert.ToDouble(this.txtEmployeeOther.Text);
                newrow["EmployeeResume"] = this.txtEmployeeResume.Text;
                newrow["EmployeeSpeciality"] = this.txtEmployeeSpeciality.Text;
                newrow["EmployeeTel"] = this.txtEmployeeTel.Text;
                newrow["EmployeeUnitWorkAge"] = Convert.ToInt32(this.txtEmployeeUnitWorkAge.Text);
                newrow["EmployeeWorkAge"] = this.txtEmployeeWorkAge.Text;
                newrow["EmployeeBasePay"] = Convert.ToDouble(this.txtEmployeeBasePay.Text);
                newrow["EmployeeDept"] = this.cbbEmployeeDept.Text;
                newrow["EmployeeDutyType"] = this.cbbEmployeeDutyType.Text;
                newrow["EmployeeFolk"] = this.cbbEmployeeFolk.Text;
                newrow["EmployeeMarriage"] = this.cbbEmployeeMarriage.Text;
                newrow["EmployeePoliticsVisage"] = this.cbbEmployeePoliticsVisage.Text;
                newrow["EmployeePostTitle"] = this.cbbEmployeePostTitle.Text;
                newrow["EmployeeSex"] = this.cbbEmployeeSex.Text;
                newrow["EmployeeWorkType"] = this.cbbEmployeeWorkType.Text;
                newrow["BookInTime"] = this.dtpBookInTime.Text;
                newrow["EmployeeBirth"] = Convert.ToDateTime(this.dtpEmployeeBirth.Text);
                newrow["EmployeePartyTime"] = Convert.ToDateTime(this.dtpEmployeePartyTime.Text);
                newrow["EmployeeFoldTime"] = Convert.ToDateTime(this.dtpEmployeeFoldTime.Text);
                newrow["EmployeePhoto"] = bytes;
                ds.Tables["tb_Personnel"].Rows.Add(newrow);
                sda.Update(ds, "tb_Personnel");
                ds.Dispose();
                MessageBox.Show("数据添加成功!");
                this.empty();                this.Bind();
                btnsave.Visible = false;
                dgvPersonnelManage.ClearSelection();
                dgvPersonnelManage.TabStop = false;
            }
            catch
            {
                MessageBox.Show("数据添加失败!");
            }
        }dgvPersonnelManage.ClearSelection(); 没用!!!

解决方案 »

  1.   

    Bind()拿出来看看,上面的写的代码没有问题
      

  2.   


     public void Bind()
            {
                ds = sqlclass.SqlDaAd("select * from tb_Personnel", "tb_Personnel");
                dgvPersonnelManage.AutoGenerateColumns = false;
                dgvPersonnelManage.DataSource = ds.Tables["tb_Personnel"];
            }
    public DataSet SqlDaAd(string strsql, string strTbl)
            {
                SqlConnection con = this.SqlConBind();
                SqlDataAdapter sda = new SqlDataAdapter(strsql, con);
                DataSet ds = new DataSet();
                sda.Fill(ds, strTbl);
                con.Close();
                return ds;
            }