c#添加记录时如何刷新数据网格

时间:2013-11-17 15:58:29

标签: c# sql datagridview

添加记录后,我无法刷新数据网格。我已经尝试过其他教程中的一些东西,但是无法使它工作或者弄清楚我哪里出错了。

提前致谢。

 private void btnAdd_Click(object sender, EventArgs e)
        {
            SqlConnection con = new SqlConnection(constring);
            SqlDataAdapter da = new SqlDataAdapter();
            da.InsertCommand = new SqlCommand(cmdInsert, con);



            try
            {
                if (isvalid(textEmail.Text))
                {
                    da.InsertCommand.Parameters.Add("@firstName", SqlDbType.VarChar);
                    da.InsertCommand.Parameters["@firstName"].Value = textFirstName.Text.Trim();
                    da.InsertCommand.Parameters.Add("@surname", SqlDbType.VarChar);
                    da.InsertCommand.Parameters["@surname"].Value = textSurname.Text.Trim();
                    da.InsertCommand.Parameters.Add("@email", SqlDbType.VarChar);
                    da.InsertCommand.Parameters["@email"].Value = textEmail.Text.Trim();
                    da.InsertCommand.Parameters.Add("@phone", SqlDbType.VarChar);
                    da.InsertCommand.Parameters["@phone"].Value = textPhone.Text.Trim();
                    da.InsertCommand.Parameters.Add("@mobile", SqlDbType.VarChar);
                    da.InsertCommand.Parameters["@mobile"].Value = textMobile.Text.Trim();

                    con.Open();
                    da.InsertCommand.ExecuteNonQuery();
                    MessageBox.Show("Customer Added");
                    con.Close();
                    clearboxes();
                    customerDataSet.Clear();
                    dataGridView1.DataSource = null;
                    customerTableAdapter.Fill(customerDataSet.Customer);
                    dataGridView1.DataSource = customerDataSet.Customer;


                }
                else
                {
                    textEmail.BackColor = Color.Red;
                }

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());

            }
        }

3 个答案:

答案 0 :(得分:1)

应该是一个函数,在该特定表上有一个select语句,您刚刚插入了该记录。

在每次插入/更新/删除操作后调用该函数,这将为您提供数据库中存在的更新数据。

答案 1 :(得分:0)

您能详细说明为什么要刷新数据网格? 是的,刷新和指定您的原因可能有很多原因可以帮助我们回答您的问题。

根据我的理解,直到现在,我建议你在标记要添加到网格的记录的语句之后添加你想要执行的操作/功能。

答案 2 :(得分:0)

对于其他遇到类似问题的人来说,这就是我如何设法绕过它。附:我不是专家,所以他们可能是一个更容易/更好的方式,但这里是代码,感谢大家的意见。

 public void binddata()
        {

            try
            {
                customerDataSetBindingSource.DataSource = cmdselect;
                dataGridView1.DataSource = customerDataSetBindingSource;

                SqlConnection con = new SqlConnection(constring);
                SqlDataAdapter da = new SqlDataAdapter();
                da.SelectCommand = new SqlCommand(cmdselect, con);

                DataTable dt = new DataTable();
                dt.Locale = System.Globalization.CultureInfo.InvariantCulture;
                da.Fill(dt);
                dataGridView1.DataSource = dt;


                MessageBox.Show("Data Updated");
                con.Close();

            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }



        private void btnAdd_Click(object sender, EventArgs e)
        {
            SqlConnection con = new SqlConnection(constring);
            SqlDataAdapter da = new SqlDataAdapter();
            da.InsertCommand = new SqlCommand(cmdInsert, con);



            try
            {
                if (isvalid(textEmail.Text))
                {
                    da.InsertCommand.Parameters.Add("@firstName", SqlDbType.VarChar);
                    da.InsertCommand.Parameters["@firstName"].Value = textFirstName.Text.Trim();
                    da.InsertCommand.Parameters.Add("@surname", SqlDbType.VarChar);
                    da.InsertCommand.Parameters["@surname"].Value = textSurname.Text.Trim();
                    da.InsertCommand.Parameters.Add("@email", SqlDbType.VarChar);
                    da.InsertCommand.Parameters["@email"].Value = textEmail.Text.Trim();
                    da.InsertCommand.Parameters.Add("@phone", SqlDbType.VarChar);
                    da.InsertCommand.Parameters["@phone"].Value = textPhone.Text.Trim();
                    da.InsertCommand.Parameters.Add("@mobile", SqlDbType.VarChar);
                    da.InsertCommand.Parameters["@mobile"].Value = textMobile.Text.Trim();

                    con.Open();
                    da.InsertCommand.ExecuteNonQuery();
                    MessageBox.Show("Customer Added");
                    con.Close();
                    clearboxes();
                    binddata();

                }
                else
                {
                    textEmail.BackColor = Color.Red;
                }

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());

            }
        }