好的,正如标题所说,我试图从数据库中填充组合框,然后根据组合框中的更改更改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