簡體   English   中英

如何在Windows窗體中向現有DataGridView添加第二個DataSource

[英]How to add second DataSource to existing DataGridView in windows forms

我需要將第二個數據源添加到已經有一個數據源的DataGridView中,或者如果不可能,則可以動態添加新列,其中包含從第二個數據源到填充有第一個數據源的DataGridView中的行。 如果有人可以提供示例並說明如何進行管理,請提供幫助。 提前致謝。

更多細節:

  • 第一個DataSource返回4列,第二個DataSource僅返回2列,但是兩個DataSource返回的列數相等。 因此,如果第一個數據源返回4行,第二個數據源也將返回4行。
  • 我設法將第一個數據源綁定到DataGridView,但是我不知道如何添加第二個。 兩個數據源都在單獨的列表中從相同的mySql表返回數據,但具有不同的數據值。
  • dataGridViewMojaDjeca-我需要向其添加兩個數據源的DataGridView的名稱, DohvatiOcjene-返回列表的方法,該列表是保存在名為“ listaOcjenaDjeteta ”的列表中的第一個數據源, DohvatiProfesore2方法返回的列表是我沒有的第二個數據源不會無處保存,因為我不知道如何將其添加到已經包含第一個DataSource數據的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; } 

您可以聲明List並在其中添加兩個結果List,然后將其設置為數據源並刷新datagrid,如下所示:

List<Ocjene> listaOcjenaDjeteta = new List<Ocjene>();
listaOcjenaDjeteta.AddRange(ocjeneDjeteta.DohvatiOcjene(svaDjeca[int.Parse(clickedItem.Name)].IdDjeteta));// Add first List
listaOcjenaDjeteta.AddRange(ocjeneDjeteta.DohvatiProfesore2());// Add second List

dataGridViewMojaDjeca.DataSource = listaOcjenaDjeteta;
dataGridViewMojaDjeca.Refresh();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM