comboBox绑定数据库、模糊查询

实现:

一、绑定数据库

点击查询按钮,comboBox显示从数据库查到的某字段的一列数据

方法:在按钮的点击事件绑定数据库

private void button1_Click(object sender, EventArgs e)
        {
            using (SQLiteConnection con = new SQLiteConnection(Constants.DATA_SOURCE))
            {
                con.Open();
                using (SQLiteCommand cmd = new SQLiteCommand())
                {
                    cmd.Connection = con;
                    cmd.CommandText = string.Format("select * from  test t");
                    int rows = cmd.ExecuteNonQuery();
                    SQLiteDataAdapter sda = new SQLiteDataAdapter(cmd);
                    DataSet ds = new DataSet();
                    sda.Fill(ds);
                    //con.Close();
                    DataTable dt = ds.Tables[0];
                    this.comboBox1.DataSource = dt;
                    this.comboBox1.DisplayMember="name";  //要显示的数据库中某字段的一列数据
                    this.comboBox1.ValueMember = "id";  //设置了ValueMember=‘id’

                }
            }


        }

 设置了ValueMember=‘id’,然后前台页面就可以根据comboBox选中的项,获取其id,

根据选中的comboBox的项获取其id值:string str=comboBox1.SelectedValue.ToString();

根据选中的comboBox的项获取其文本值:string str=comboBox1.Text;

 

二、模糊查询(在上面代码的基础上加两句)

在comboBox上输入的字传给str,sql语句模糊查询这个str即可

        string str = this.comboBox1.Text;
            using (SQLiteConnection con = new SQLiteConnection(Constants.DATA_SOURCE))
            {
                con.Open();
                using (SQLiteCommand cmd = new SQLiteCommand())
                {
                    cmd.Connection = con;
                    cmd.CommandText = string.Format("select * from  test t where t.name like '%"+str+"%'");
                    int rows = cmd.ExecuteNonQuery();
                    SQLiteDataAdapter sda = new SQLiteDataAdapter(cmd);
                    DataSet ds = new DataSet();
                    sda.Fill(ds);
                    //con.Close();
                    DataTable dt = ds.Tables[0];
                    this.comboBox1.DataSource = dt;
                    this.comboBox1.DisplayMember = "name";
                    this.comboBox1.ValueMember = "id";
            this.comboBox1.DroppedDown = true;  //点击查询,让comboBox下拉列表展开显示得到的结果,
                }
            }

 

三、自动补全后面剩余字段

需要绑定数据源到Load方法里,而且打开页面就能显示所有数据,

private void Form1_Load(object sender, EventArgs e)
        {
            using (SQLiteConnection con = new SQLiteConnection(Constants.DATA_SOURCE))
            {
                con.Open();
                using (SQLiteCommand cmd = new SQLiteCommand())
                {
                    cmd.Connection = con;
                    cmd.CommandText = string.Format("select * from  test t");
                    int rows = cmd.ExecuteNonQuery();
                    SQLiteDataAdapter sda = new SQLiteDataAdapter(cmd);
                    DataSet ds = new DataSet();
                    sda.Fill(ds);
                    //con.Close();
                    DataTable dt = ds.Tables[0];
                    this.comboBox1.DataSource = dt;
                    this.comboBox1.DisplayMember = "name";
                    this.comboBox1.ValueMember = "id";
this.comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;  //自动补全后面剩余字段 this.comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems;  //自动补全后面剩余字段
} } }

 

 
 

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值