【发布时间】:2017-12-12 19:19:15
【问题描述】:
我需要将第二个 DataSource 添加到已经有一个 DataSource 的 DataGridView,或者如果这不可能,我可以将第二个 DataSource 中的行的新列动态添加到填充了第一个 DataSource 的 DataGridView。请如果有人可以举例说明如何管理它。提前致谢。
更多细节:
- 第一个 DataSource 返回 4 列,第二个 DataSource 仅返回 2 列,但两个 DataSource 在一列中返回相同数量的行。因此,如果第一个 DataSource 返回 4 行,则第二个 DataSource 也将返回 4 行。
- 我设法将第一个 DataSource 绑定到 DataGridView,但我不知道如何添加第二个。两个 DataSources 从单独的 List 中的相同 mySql 表中返回数据,但具有不同的数据值。
-
dataGridViewMojaDjeca - 我需要添加两个数据源的 DataGridView 的名称,DohvatiOcjene - 返回列表的方法,该列表是保存在名为“ listaOcjenaDjeteta", DohvatiProfesore2 方法返回列表,这是我没有保存的第二个数据源,因为我不知道如何将它添加到 DataGridView 数据源中已经包含来自第一个 DataSource 的数据。
void PrikaziPodatkeDjeteta(object sender, EventArgs e) { Ocjene ocjeneDjeteta = new Ocjene(); ToolStripMenuItem clickedItem = (ToolStripMenuItem)sender; List<Ocjene> listaOcjenaDjeteta = ocjeneDjeteta.DohvatiOcjene(svaDjeca[int.Parse(clickedItem.Name)].IdDjeteta); dataGridViewMojaDjeca.DataSource = listaOcjenaDjeteta; // here I need to add second DataSource!*** DohvatiPodatkeDjeteta(svaDjeca[int.Parse(clickedItem.Name)].IdDjeteta); lblImeIPrezime.Text = djeca.imeDjeteta + " " + djeca.prezimeDjeteta; lblKorisnickoIme.Text = djeca.korImeDjeteta; dataGridViewMojaDjeca.AutoResizeColumns(); } public List<Ocjene> DohvatiOcjene(int korisnik) { List<Ocjene> listaOcjena = new List<Ocjene>(); //string sqlUpit = "SELECT * FROM Ocjenjivanje WHERE id_ucenik = '" + korisnik + "';"; string sqlUpit = "SELECT Ocjenjivanje.vrijeme, Korisnik.ime AS imeProfesora, Korisnik.prezime AS prezimeProfesora, Predmet.naziv AS nazivPredmeta, Ocjenjivanje.ocjena, Ocjenjivanje.napomena FROM Korisnik, Predmet, Ocjenjivanje, Profesor_predaje, Razred_ucenik, Profesor_predaje_predmet_razredu WHERE Ocjenjivanje.id_zapis = Profesor_predaje_predmet_razredu.id_zapis and Profesor_predaje_predmet_razredu.id_profesor_predmet = Profesor_predaje.id_zapis and Profesor_predaje.id_predmet = Predmet.id and Profesor_predaje_predmet_razredu.id_razred_ucenik = Razred_ucenik.id_zapis and Razred_ucenik.id_ucenik = Korisnik.id and Korisnik.id = '" + korisnik + "';"; DbDataReader dr = DB.Instance.DohvatiDataReader(sqlUpit); while (dr.Read()) { Ocjene o = new Ocjene(dr); listaOcjena.Add(o); } dr.Close(); idZapisa = 0; return listaOcjena; } public List<Ocjene> DohvatiProfesore2() { List<Ocjene> imeProfesora = new List<Ocjene>(); //prezimeProfesora = "", imeIprezimeProfesora = ""; if (idZapisa != 0) { //string sqlUpit = "SELECT Korisnik.ime AS imeProfesora, Korisnik.prezime AS prezimeProfesora FROM Ocjenjivanje, Profesor_predaje_predmet_razredu, Profesor_predaje, Korisnik WHERE Ocjenjivanje.id_zapis = '" + idZapisa + "' AND Ocjenjivanje.id_zapis = Profesor_predaje_predmet_razredu.id_zapis AND Profesor_predaje_predmet_razredu.id_profesor_predmet = Profesor_predaje.id_zapis AND Profesor_predaje.id_profesor = Korisnik.id GROUP BY Korisnik.prezime, Korisnik.ime;"; string sqlUpit = "SELECT Korisnik.ime AS imeProfesora, Korisnik.prezime AS prezimeProfesora FROM Ocjenjivanje, Profesor_predaje_predmet_razredu, Profesor_predaje, Korisnik WHERE Ocjenjivanje.id_zapis = '" + idZapisa + "' AND Ocjenjivanje.id_zapis = Profesor_predaje_predmet_razredu.id_zapis AND Profesor_predaje_predmet_razredu.id_profesor_predmet = Profesor_predaje.id_zapis AND Profesor_predaje.id_profesor = Korisnik.id;"; DbDataReader dr = DB.Instance.DohvatiDataReader(sqlUpit); while (dr.Read()) { Ocjene o = new Ocjene(dr); imeProfesora.Add(o); //prezimeProfesora = dr["prezimeProfesora"].ToString(); } dr.Close(); //imeIprezimeProfesora = imeProfesora + " " + prezimeProfesora; } else { //imeIprezimeProfesora = ""; } return imeProfesora; }
【问题讨论】:
标签: c# winforms datagridview datasource