从访问表c填充组合框#
问题描述:
我来自VB.net,我试图学习C#,所以我正在编程我的应用程序现在在C#而不是Vb.net。从访问表c填充组合框#
我想填充组合框中的一些数据,我有一个访问表,但我的代码在vb.net工作,似乎并没有在C#中表现相同。任何人都可以帮我找出为什么这不起作用吗?
try
{
//string turno = "1";
//fillnames(turno);
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = @"Provider= Microsoft.ACE.OLEDB.12.0; Data Source=path.accdb;";
DataSet ds = new DataSet();
DataTableCollection tables = new DataTableCollection();
OleDbDataAdapter da = new OleDbDataAdapter();
tables = ds.Tables;
da = new OleDbDataAdapter("SELECT [Materialista] FROM [OPS] WHERE [Turno] = '" + "1" + "'", conn);
da.Fill(ds, "Ops");
AutoCompleteStringCollection col = new AutoCompleteStringCollection();
for (int i = 0; i <= ds.Tables[0].Rows.Count - 1; i++)
{
col.Add(ds.Tables[0].Rows[i]["Dnum"].ToString());
}
cmb_operador.AutoCompleteSource = AutoCompleteSource.CustomSource;
cmb_operador.AutoCompleteCustomSource = col;
cmb_operador.AutoCompleteMode = AutoCompleteMode.Suggest;
}
catch
{
}
我得到的错误是:
类型System.Data.DataTableCollection有没有构造函数定义
我用几乎相同的只是在vb.net的语法和它作品完美无缺
答
DataTableCollection
没有公共构造函数,所以你不能实例化它。而在你的情况,你不需要它,你的代码改成这样:
//...
//remove DataTableCollection tables = new DataTableCollection();
OleDbDataAdapter da = new OleDbDataAdapter();
DataTableCollection tables = ds.Tables;
//...
+0
感谢古斯曼,这真的解决了我的问题,这似乎是一个非常简单的错误。此外,我注意到,我仍然在代码中发现错误,现在我已经更正了代码,因为我在复制此代码的文本框时我自动完成,但实际上我只是想要填充组合框。 – Demandread
答
我会用这个答案附更正后的代码为我想做的事,使用@Gusman建议,在任何情况下,有任何用处。
try
{
//string turno = "1";
//fillnames(turno);
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = @"Provider= Microsoft.ACE.OLEDB.12.0; Data Source=path.accdb;";
DataSet ds = new DataSet();
OleDbDataAdapter da = new OleDbDataAdapter();
DataTableCollection tables = ds.Tables;
da = new OleDbDataAdapter("SELECT [Materialista] FROM [OPS] WHERE [Turno] = '" + "1" + "'", conn);
da.Fill(ds, "Ops");
AutoCompleteStringCollection col = new AutoCompleteStringCollection();
for (int i = 0; i <= ds.Tables[0].Rows.Count - 1; i++)
{
col.Add(ds.Tables[0].Rows[i]["Materialista"].ToString());
}
cmb_operador.DataSource = col;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
的可能的复制[C# - 装满一个DataTable的组合框(https://stackoverflow.com/questions/256832/c-sharp-fill-a-combo-box-with-a-datatable ) – MethodMan