首页 > 解决方案 > 如何在表单加载时从数据库更新 datagridview?

问题描述

我对 C# 和一般编码相当陌生。我已经查看了类似的问题,并没有太多的运气来解决这个问题。

我正在制作一个应用程序,将学生详细信息存储在数据库中的表格中。目前,当我运行它时,详细信息会从文本框添加到表格中。一个按钮会打开一个带有 datagridview 的单独表单,但其中的详细信息不会更新。如果我重新运行应用程序并打开第二个表单,则 datagridview 已更新。如何在应用程序运行时根据添加到表中的信息更新 datagridview?

这是将详细信息添加到表中的代码

                using (SqlConnection sc = new SqlConnection())
                {
                    sc.ConnectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\corry\Desktop\StudentAttendanceBurton\Attendance.mdf;Integrated Security=True";
                    sc.Open();

                    using (SqlCommand com = sc.CreateCommand())
                    {
                        com.CommandText =
                          "insert into BUS102(\n" +
                          "  Name,\n" +
                          "  [Student ID],\n" +
                          "  Date)\n" +
                          "values(\n" +
                          "  @prm_Name,\n" +
                          "  @prm_Student_ID,\n" +
                          "  @prm_Date)";


                        com.Parameters.Add("@prm_Name", SqlDbType.NVarChar, 50).Value = student.Name;
                        com.Parameters.Add("@prm_Student_ID", SqlDbType.Int).Value = student.StudentID;
                        com.Parameters.Add("@prm_Date", SqlDbType.SmallDateTime).Value = student.Date;


                        com.ExecuteNonQuery();
                    }
                }

这是具有 datagridview 的表单的代码

public partial class AttendanceForm : Form

{

    public AttendanceForm()
    {
        InitializeComponent();
    }

    private void bUS102BindingNavigatorSaveItem_Click(object sender, EventArgs e)
    {
        this.Validate();
        this.bUS102BindingSource.EndEdit();
        this.tableAdapterManager.UpdateAll(this.attendanceDataSet);

    }

    private void AttendanceForm_Load(object sender, EventArgs e)
    {

        // TODO: This line of code loads data into the 'attendanceDataSet.BUS102' table. You can move, or remove it, as needed.
        this.bUS102TableAdapter.Fill(this.attendanceDataSet.BUS102);

    }
}

标签: c#databasedatagridview

解决方案


您必须刷新 datagridview

this.dataGridView1.Refresh();

推荐阅读