4
 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"];
 }

ボタンのクリックでこのような結果が得られるのはなぜですか?

ここに画像の説明を入力

4

1 に答える 1

6

レコードが互いにどのように関連しているかを定義できなかったため、クエリはデカルト積を生成します。条件を追加する必要があります。

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

これは、 table のレコードがon tablepersonに関連付けられていることを意味します。IDstudent

結合についてさらに詳しく知りたい場合は、以下のリンクにアクセスしてください。

于 2013-09-16T12:10:12.377 に答える