好的,正如標題所說,我試圖從數據庫中填充組合框,然後根據組合框中的更改更改checkedlistbox的內容。這裏的問題是,我會像我一樣迷失。我決定使用訪問數據庫(db1.mdb,與exe文件位於同一目錄中)。主數據表Table1具有應放在組合框(item1,item2,item3)中的項目名稱。然後,我爲每個值(tableitem1,tableitem2,tableitem3)都有單獨的表格,並且列表框將一次使用這些表格,其中列出了「項目名稱」字段,其中每個表格中的金額都不相同。在檢查checkedlistbox中的選項後,我需要從與檢查列表框關聯的數據庫表中獲取該表中其他列的值「value1和value2」中的值。我已經編程了大約5年,但從來沒有需要操縱數據庫,所以我完全失去了。從數據庫中填充組合框和CheckedListBox C#
0
A
回答
0
我發現一些很好的代碼和建議閱讀更多的線程在這裏。顯然,我的主要問題是在表名中使用空格,所以我刪除了表和代碼中的空格。此代碼可用於在組合框和checkedlistbox中加載適當的值。現在,我只需要加載對應於檢查列表的行中的值,並將來自2個不同列的值加載到2個不同的字符串數組中。這是我第一次使用數據庫,所以我只是迷失在系統如何解釋我寫的內容。
private OleDbConnection myConn;
private OleDbDataAdapter dAdapter;
private DataViewManager dviewmanager;
private DataSet dset;
private OleDbConnection myConn2;
private OleDbDataAdapter dAdapter2;
private DataViewManager dviewmanager2;
private DataSet dset2;
private void cmbDatabaseFill()
{
string conStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=DB1.mdb";
try
{
myConn = new OleDbConnection(conStr);
myConn.Open();
}
catch (OleDbException ex)
{
MessageBox.Show("Error in connection ..." + ex.Message);
}
string sqlStr = "SELECT * FROM Index;";
dAdapter = new OleDbDataAdapter(sqlStr, myConn);
dset = new DataSet();
dAdapter.TableMappings.Add("Table", "Index");
dAdapter.Fill(dset);
this.dviewmanager = dset.DefaultViewManager;
this.cmbMain.DataSource = this.dviewmanager;
this.cmbMain.DisplayMember = "Index.List";
this.myConn.Close();
}
private void cmbMain_SelectedIndexChanged(object sender, EventArgs e)
{
clbDatabaseFill();
}
private void clbDatabaseFill()
{
string newTableName = cmbMain.Text.Replace(" ", "");
string conStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=DB1.mdb";
try
{
myConn2 = new OleDbConnection(conStr);
myConn2.Open();
}
catch (OleDbException ex)
{
MessageBox.Show("Error in connection ..." + ex.Message);
}
string sqlStr = "SELECT * FROM " + newTableName + ";";
dAdapter2 = new OleDbDataAdapter(sqlStr, myConn2);
dset2 = new DataSet();
dAdapter2.TableMappings.Add("Table", newTableName);
try
{
dAdapter2.Fill(dset2);
}
catch (System.Exception)
{
return;
}
this.dviewmanager2 = dset2.DefaultViewManager;
this.clbOpt.DataSource = this.dviewmanager2;
this.clbOpt.DisplayMember = newTableName + ".ValName";
this.myConn2.Close();
}
相關問題
- 1. 從數據庫填充組合框
- 2. 從數據庫填充組合框
- 3. 如何從數據庫中填充組合框,並在C#
- 4. 從PHP數據庫中的數據填充組合框
- 5. 如何從數據庫C#填充組合框?
- 6. 從數據表填充組合框
- 7. 從Excel表C中填充組合框#
- 8. WPF組合框從MySQL數據庫填充數據
- 9. 從訪問數據庫填充組合
- 10. 從數據庫填充數組C#
- 11. 用數據庫中的數據填充組合框控件
- 12. 從XML填充組合框
- 13. C#填充組合框
- 14. C#填充組合框
- 15. VB.Net 2010 - 從MDB訪問數據庫填充組合框
- 16. 從訪問表c填充組合框#
- 17. 填充組合框從SQL在C#
- 18. 從MS Access數據庫行填充一個VB組合框
- 19. 如何從數據庫查詢填充組合框?
- 20. 填充組合框與數據庫,從空白項目
- 21. 從MS Access數據庫填充組合框
- 22. 把從數據庫填充的組合框放入datagridview列
- 23. 填充組合框
- 24. 填充文本框與文本從數據表中 - 組合框
- 25. 從組合框填充文本框的數據值從組合框#
- 26. 如何在數據庫中填充Silverlight中的組合框
- 27. 的Zend - 填充組合框與數據庫返回的數據
- 28. Javascript - 用新數據填充組合框
- 29. 填充組合框與數據集
- 30. 用mysql數據填充組合框
你能稍微清楚一點嗎?根據我的理解,到目前爲止,您想要在Combobox中獲取數據,並且當某人選擇了某些內容時,您希望獲取其他值並顯示爲checkboxlist。您是否知道如何創建DataSet並將其綁定到控件?如果否 - 我會建議先從基礎知識開始......做一些簡單的事情,然後你可以嘗試一下自己。 – sajoshi 2011-04-06 05:30:11
如果你已經編程了5年,你應該知道如何填充組合框,等等 - 也許你應該發佈一個只涉及數據訪問部分的問題?這個問題不會得到很好的答案,因爲它太寬泛了。 – 2011-04-06 05:55:24
我會澄清...所有數據庫值都是文本值。數據集是我感到困惑的地方,我可以使用之前在此處獲得的一些信息輕鬆加載組合框,但是隨後在組合框中從名稱中提取新數據表給我一個偏頭痛。我已經編程了5年以上的基本形式,我對c#很新,我以前只做過娛樂編程,所以我從來不需要構建數據庫並從中加載。我嘗試着將OP作爲信息儘可能地提供給所有人,並顯然失去了清晰度。雖然Sajoshi似乎有我的一般意圖。 – James 2011-04-06 06:15:39