2013-04-20 17 views
0

在這裏完成一個noob的演講。我有一個與MySQL交互的C#接口。 我的問題是,我想顯示一個DataGridView,但我想更改列的內容。我想用代碼更容易理解。在C#和MySQL中使用DataGridView

private void CargaEstados() 
    { 
     conexion.Open(); 
     txtNomMun.Focus(); 
     try 
     { 
      DataSet ds = new DataSet(); 
      MySqlDataAdapter da = new MySqlDataAdapter("SELECT cveestado, nombre FROM tbestados", conexion); 
      da.Fill(ds, "FillDropDown"); 
      cbEstado.DisplayMember = "Nombre"; 
      cbEstado.ValueMember = "CveEstado"; 
      cbEstado.DataSource = ds.Tables["FillDropDown"]; 
      conexion.Close(); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); 
     } 
    } 

    private void CargaDataGridView() 
    { 
     conexion.Open(); 
     try 
     { 
      cmd.CommandText = "select cvemunicipio, nombre, cveEstado from tbMunicipios"; 
      rd = cmd.ExecuteReader(); 
      while (rd.Read()) 
      { 
       this.dataGridView1.Rows.Add(rd.GetValue(0), rd.GetValue(1), rd.GetValue(2)); 
      } 
      conexion.Close(); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); 
     } 
    } 

在CargaEstados()我在組合框(cbEstado)名稱(NOMBRE)顯示,但我獲得ID(cveestado){如下所示}。

"insert into tbmunicipios (nombre, cveestado) values ('" + txtNomMun.Text + "', '" + cbEstado.SelectedValue.ToString() + "')"; 

在DataGridView中我要到對面,與ID,我想要顯示的名字,但我不知道該怎麼做。

我的SQL表是:

Create DataBase CatalogoMun; 
use CatalogoMun; 
Create table tbEstados 
(
    CveEstado int not null, 
    Nombre varchar (45) not null, 
    Constraint pkCveEstado Primary Key (CveEstado) 
)Engine=Innodb; 
Create table tbMunicipios 
(
    CveMunicipio int not null AUTO_INCREMENT, 
    Nombre varchar (45) not null, 
    CveEstado int not null, 
    Constraint pkCveMunicipio Primary Key (CveMunicipio), 
    Constraint fkCVeEdo Foreign Key (CveEstado) references tbEstados (CveEstado) 
)Engine=Innodb; 

舉例來說,如果我有(1,比亞埃爾莫薩,27)在tbMunicipios,我想顯示(1,比亞埃爾莫薩,塔瓦斯科)。

謝謝:d

回答

1

這是實現能夠與SQL join

聲明會是這個樣子:

cmd.CommandText = "SELECT m.cvemunicipio, m.nombre AS NombreA, e.nombre AS NombreB FROM tbMuncipios m INNER JOIN tbEstados e ON m.CveEstado = e.CveEstado"; 
+0

感謝@Kaiwa,我嘗試過,但它不工作在所有:( – 2013-04-20 22:07:17

+0

這是什麼意思?SQL錯誤的某種? – Kaiwa 2013-04-20 22:07:52

+0

它說'未知的列'm.pkcvestado'在'條款'',@ Kaiwa – 2013-04-20 22:12:38