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