gpt4 book ai didi

c# - 为什么我的 SELECT 与 dataGrid 重复?

转载 作者:可可西里 更新时间:2023-11-01 07:27:47 24 4
gpt4 key购买 nike

 public static DataSet selectStudent()
{
MySqlConnection conn = connection();
conn.Open();
MySqlCommand cmd = new MySqlCommand();
cmd.Connection = conn;
MySqlDataAdapter adap = new MySqlDataAdapter(@"SELECT person.*, student.gradePointAverage, student.majorField FROM person JOIN student", conn);
MySqlCommandBuilder sqlCmd = new MySqlCommandBuilder(adap);
DataSet sqlSet = new DataSet();
adap.Fill (sqlSet, "studentInfo");
conn.Close();
return sqlSet;
}

和按钮:

 private void btnAdminStudentView_Click(object sender, EventArgs e)
{
DataSet ds = studentHelperClass.selectStudent();
dataGridStudent.DataSource = ds.Tables["studentInfo"];
}

为什么点击按钮会得到这样的结果?

enter image description here

最佳答案

您的查询生成笛卡尔积,因为您未能定义记录之间的关联方式。你需要添加一个条件,

SELECT person.*, student.gradePointAverage, student.majorField 
FROM person JOIN student
ON person.ID = student.ID // example only

这意味着 person 表中的记录与 student 表中的 ID 相关。

要进一步了解有关联接的更多信息,请访问以下链接:

关于c# - 为什么我的 SELECT 与 dataGrid 重复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18827626/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com