【新手问题】关于textbox的一些问题

新青年 发布于 2017/03/10 21:33
阅读 42
收藏 0

请问各位大牛,在textbox里输入数据,并将其与已经从oracle数据库获取到对应行的数据比较,如果相同则保留当前数据。如果不同则提示用户输入有误。应该怎么写呢?

 private void textBox1_KeyDown(object sender, KeyEventArgs e)
        {
            //if (e.KeyCode == Keys.Enter)
            //{
            //    string ghbm = textBox1.Text;
            //    string conn;
            //    linkora a = new linkora();//实例化
            //    conn = a.conn();
            //    OracleDataAdapter oraDap = new OracleDataAdapter("select BRID from gh_brgh", conn);//获取指定表数据
            //    DataSet ds = new DataSet();//定义DS并实例化
            //    oraDap.Fill(ds);//将oradap查询到的数据填充到ds中
            //    DataTable dt = ds.Tables[0];//获取ds的第一行
            //                                //if (Convert.ToInt32(dt.Rows.Count) < 1)//判断工号是否存在 转换dt数据 并判断行数是否小于1行
            //                                //{
            //                                //    MessageBox.Show("挂号信息不存在 请重新输入!");
            //                                //    return;
            //                                //};
            //    string BRID = dt.Rows[0].ToString();
            //    if (ghbm == BRID)
            //    {
            //        MessageBox.Show("挂号信息正确");
            //        textBox1.Text = ghbm;
            //    }
            //    else
            //    {
            //        MessageBox.Show("挂号信息错误,请重新输入");
            //    };
            //}
            
            DataTable dt = linkora.RunSQL("select BRID from gh_brgh");
            string ghbm = textBox1.Text;
            string bird = dt.Rows[0].ToString();
            while (e.KeyCode == Keys.Enter) {
                if (ghbm == bird)
                {
                    textBox1.Text = dt.Rows[0].ToString();
                }
                else {

                }
              
            }

        }

 

加载中
0
蓝水晶飞机
蓝水晶飞机

keydown,这个设计不好,查询数据库可是个很耗时的操作的。

每次按下一个按键就得卡个5-50毫秒,用户受不了的。

你可以在文本框失去焦点时(LostFocus)再去校验用户的输入。

 

新青年
新青年
好的 我试试去 谢谢提醒~~
返回顶部
顶部