我試圖把3在我的DataGridView綁定的DataGridViewComboBoxCell,的DataGridViewComboBoxCell值無效
一個「Categorie」表,第二個爲「第」表和第三的
「ArticleNonCon」表。當我選擇一個類別第二
的DataGridViewComboBoxCell應該給我這個categorie和
的文章時,我選擇了一篇文章第三的DataGridViewComboBoxCell應該給我
這篇文章的序列號。這是我試過的代碼:
在按鈕點擊,顯示形式:
if (con.State != ConnectionState.Open)
{
con.Open();
}
SqlCommand catCmd = new SqlCommand("SELECT IdCategorie, LibCategorieFr FROM Categorie", con);
DataTable catDt = new DataTable();
catDt.Load(catCmd.ExecuteReader());
((DataGridViewComboBoxColumn)dataGridView1.Columns["CategorieColumn"]).DataSource = catDt;
((DataGridViewComboBoxColumn)dataGridView1.Columns["CategorieColumn"]).DisplayMember = "LibCategorieFr";
((DataGridViewComboBoxColumn)dataGridView1.Columns["CategorieColumn"]).ValueMember = "IdCategorie";
,並在DataGridView的CellEndEdit事件:
private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
switch (dataGridView1.Columns[e.ColumnIndex].Name)
{
case "CategorieColumn":
if (con.State != ConnectionState.Open)
{
con.Open();
}
SqlCommand artCmd = new SqlCommand("SELECT * FROM Article WHERE IdCategorie = @IdCategorie", con);
artCmd.Parameters.AddWithValue("@IdCategorie", dataGridView1.CurrentRow.Cells["CategorieColumn"].Value);
DataTable articleDt = new DataTable();
articleDt.Load(artCmd.ExecuteReader());
((DataGridViewComboBoxColumn)dataGridView1.Columns["Column3"]).DataSource = articleDt;
((DataGridViewComboBoxColumn)dataGridView1.Columns["Column3"]).DisplayMember = "LibArticleFr";
((DataGridViewComboBoxColumn)dataGridView1.Columns["Column3"]).ValueMember = "CodeArticle";
con.Close();
break;
case "Column3":
if (con.State != ConnectionState.Open)
{
con.Open();
}
SqlCommand numSerieCmd = new SqlCommand("SELECT * FROM ArticleNonCon WHERE CodeArticle = @CodeArticle", con);
numSerieCmd.Parameters.AddWithValue("@CodeArticle", dataGridView1.CurrentRow.Cells["Column3"].Value);
DataTable numSerieDt = new DataTable();
numSerieDt.Load(numSerieCmd.ExecuteReader());
((DataGridViewComboBoxColumn)dataGridView1.Columns["NumSerieColumn"]).DataSource = numSerieDt;
((DataGridViewComboBoxColumn)dataGridView1.Columns["NumSerieColumn"]).DisplayMember = "NumSerieArticle";
((DataGridViewComboBoxColumn)dataGridView1.Columns["NumSerieColumn"]).ValueMember = "id";
con.Close();
break;
}
}
該代碼完全適用於第一次運行,但是當我嘗試更改文章並從第三個datagridviewComboboxCell中選擇本文的序列號時,我得到以下異常:
System.ArgumentException:的DataGridViewComboBoxCell值無效
這個例外情況也發生在我嘗試關閉應用程序。
那麼如何解決這個錯誤或在哪個datagridview事件我應該把我的代碼?
在此先感謝。
如何將數據綁定到DataGridView? – stefankmitph 2015-03-03 08:17:14
datagridview不綁定我只是綁定3 DatagridviewComboboxCell – user4428204 2015-03-03 08:20:10
你想達到什麼目的? DataGridView中沒有某種數據(DataSource)? – stefankmitph 2015-03-03 08:24:36