C# 从访问表c填充组合框
我来自VB.net,我正在努力学习C语言,所以我现在用C语言而不是VB.net来编程我的应用程序 我试图用access表中的一些数据填充一个组合框,但我在vb.net中运行的代码在C中的行为似乎不一样。有人能帮我找出为什么这不起作用吗C# 从访问表c填充组合框,c#,ms-access,visual-studio-2012,C#,Ms Access,Visual Studio 2012,我来自VB.net,我正在努力学习C语言,所以我现在用C语言而不是VB.net来编程我的应用程序 我试图用access表中的一些数据填充一个组合框,但我在vb.net中运行的代码在C中的行为似乎不一样。有人能帮我找出为什么这不起作用吗 try { //string turno = "1"; //fillnames(turno); OleDbConnection conn = new OleDbConnection(); conn.ConnectionString
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;
//...
我将使用这个答案为我想做的事情附上正确的代码,使用@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);
}
可能重复感谢古斯曼,这真的解决了我的问题,这似乎是一个非常简单的错误。我还注意到下面的代码中仍然有错误,现在我已经更正了,因为我正在为一个自动完成的文本框复制此代码,但这次我实际上只是想填充组合框。