我在c#中很新,上课,但是我正在努力做的事情,我知道我已经提前了。 我有一个带有列表框和文本框的表单。 这就是我填充列表框的方式
private void Centrale_Gegevens_Load(object sender, EventArgs e)
try
{
OleDbConnection verbinding = new OleDbConnection();
verbinding.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=E:\Het Vlaamse Kruis\Het Vlaamse Kruis\data\Patienten.accdb; Jet OLEDB:Database Password=internet;";
verbinding.Open();
OleDbCommand combo = new OleDbCommand();
combo.Connection = verbinding;
string query = "select NaamPatient from tbl_Patient";
combo.CommandText = query;
OleDbDataReader reader = combo.ExecuteReader();
while (reader.Read())
{
lstBox.Items.Add(reader["NaamPatient"]);
}
verbinding.Close();
}
catch (Exception ex)
{
MessageBox.Show("Error" + ex);
}
}
列表框以这种方式填充了人名。 名为textbox1的文本框是我想用来过滤列表框的文本框。
这是我得到的软化,但它不起作用。
private void textBox1_TextChanged(object sender, EventArgs e)
{
OleDbConnection verbinding = new OleDbConnection();
verbinding.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=E:\Het Vlaamse Kruis\Het Vlaamse Kruis\data\Patienten.accdb; Jet OLEDB:Database Password=internet;";
verbinding.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "select * from tbl_Patienten where NaamPatient like '" + textBox1.Text + "%' ";
cmd.ExecuteNonQuery();
DataTable dt = new DataTable();
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
da.Fill(dt);
lstBox.DataSource = dt;
lstBox.DisplayMember = "NaamPatient";
verbinding.Close();
}
我几乎可以在网上找到关于它的所有东西,公共汽车没有我做什么,我无法让它工作。 如果我在文本框中输入A,列表框显示所有以A开头的名称,如果我输入AB,列表框显示以AB开头的所有内容,我该怎么办? 提前致谢
答案 0 :(得分:0)
首先,在Centrale_Gegevens_Load中,表的名称是tbl_Patient,但在textBox1_TextChanged中,它是tbl_Patienten。
其次,Connection属性尚未初始化。
您必须在初始化cmd后插入此cmd.Connection = verbinding;
;
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = verbinding;
抱歉我的英语不好。