C# 如何使用comboBox从sql数据库绑定dataGridView中的数据?

C# 如何使用comboBox从sql数据库绑定dataGridView中的数据?,c#,winforms,datagridview,C#,Winforms,Datagridview,我的代码面临着独特的问题。 这是在comboBox1中显示表的代码,它工作正常 组合框中填充学校名称,当用户在该组合框中选择学校时,该学校的学生将显示在DataGridView中 请帮忙 此应用程序的功能: 在sql databaseschoolName中创建表。 选择学校。 在学生信息中添加值。 错误: 底部的datagrid未正确检索,它显示了其他内容。 首先,检查以下各项: SQL查询SELECT*FROM INFORMATION_SCHEMA.TABLES返回有关数据库中存在的表的信息,

我的代码面临着独特的问题。 这是在comboBox1中显示表的代码,它工作正常


组合框中填充学校名称,当用户在该组合框中选择学校时,该学校的学生将显示在DataGridView中 请帮忙


此应用程序的功能:

在sql databaseschoolName中创建表。 选择学校。 在学生信息中添加值。 错误:

底部的datagrid未正确检索,它显示了其他内容。 首先,检查以下各项:

SQL查询SELECT*FROM INFORMATION_SCHEMA.TABLES返回有关数据库中存在的表的信息,而不是特定表的行的信息

如果您想查看该表的信息,可以通过在组合框的SelectedIndexChanged事件中编写一个新查询来丰富该表的信息,如下所示:

    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath + "\\Login.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");

        con.Open();

        SqlCommand cmd = new SqlCommand();

        cmd.Connection = con;
        cmd.CommandType = CommandType.Text;
        cmd.CommandText = "SELECT * FROM " + comboBox1.Text;

        SqlDataAdapter dbAdapter = new SqlDataAdapter(cmd);

        DataTable dtRecords = new DataTable();
        dbAdapter.Fill(dtRecords);
        dataGridView1.DataSource = dtRecords; //dataGrid

        con.Close();
    }
这段代码可以解决这个问题,但实际上还有一个更大的问题,它与您的数据结构有关

这类代码告诉我每个学校都有一个表,这不是一个规范化的数据库。 让我们通过一个例子来说明这一点:假设您的经理想要将一些学生从他们的学校转移到另一所学校,在这个数据结构中,您必须将记录从一个表移动到另一个表,首先您必须找到指向我们学生的记录,然后将其保存在内存中,然后在目标表中创建一个新记录。 在本例中:

有很多工作要做有很多代码要写 您的数据有被破坏的风险。 如果必须在1000名学生中进行此操作,会发生什么情况??!! 另一方面,您可以简单地创建表并将其命名为schools,它有两个主列:ID、Name 然后创建一个表,并将其命名为students,该表有三个主要列:ID、SchoolID、Name
每个学校都有一个唯一的id,每个学生都有自己的id,通过“学校id”列与自己的学校相关。

你到底有什么问题?你能解释一下你的应用程序的功能吗?在dataGrid中,值没有绑定,它显示了不同的东西。。!当我从comboBox中选择任何学校时,如何在datagrid中获取值?此应用程序的功能:1。在sql databaseschoolName中创建表。2.选择学校。3.在学生信息中添加值。错误:1。底部的datagrid检索不正确,显示了其他内容。ComboBox中填充了学校名称,当用户在该ComboBox中选择学校时,该学校的学生将显示在DataGridView中,这是您想要的吗?是!这正是我想要的是 啊你说得对,首先我要先完成这个项目。我现在尝试在所选表中添加值。如何使用sqlCommand向选定的comboboxValueS添加值?是否要将学校名称添加到组合框中,或在组合框中向指定的学校插入新学生?
    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath + "\\Login.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");

        con.Open();

        SqlCommand cmd = new SqlCommand();

        cmd.Connection = con;
        cmd.CommandType = CommandType.Text;
        cmd.CommandText = "SELECT * FROM " + comboBox1.Text;

        SqlDataAdapter dbAdapter = new SqlDataAdapter(cmd);

        DataTable dtRecords = new DataTable();
        dbAdapter.Fill(dtRecords);
        dataGridView1.DataSource = dtRecords; //dataGrid

        con.Close();
    }