代码如下:MessageBox.Show("查询到了信息,用户名为:" + textBox1.Text + ""+ textBox2.Text+"");
            SqlConnection cnn = new SqlConnection();
            cnn.ConnectionString = "Data Source=192.168.0.22;Initial Catalog=HZYBStoreHouse;uid=hzadmin;pwd=admin";
            cnn.Open();
            InitializeComponent();
            string strsql = "SELECT Name, Password FROM HZPersonnel WHERE Name ='" + textBox1.Text + "'and Password = '" + textBox2.Text + "'";
            SqlCommand cm = new SqlCommand(strsql, cnn);
            SqlDataReader dr = cm.ExecuteReader();
            if (dr.Read())
            {
                MessageBox.Show("查询到了信息,用户名为:" + textBox1.Text + "");            }
            else
            {
                MessageBox.Show("昵称/密码不对,请重新注册");
            }
            cnn.Close();打开窗口后,第一次输入可以正常读取.
点击一次 :确定: 以后,第二次再读的时候 TextBox1 和textBox2 都为空.不管输入什么内容.哪位知道是怎么回事啊?郁闷中

解决方案 »

  1.   

    这都什么代码啊,怎么看着乱呢?不明白,为什么喜欢用ExecuteReader来执行呢?
      

  2.   

    InitializeComponent(); 这段代码把textbox重新初始化了。
      

  3.   

    你是做登陆界面还是?????
    你在执行数据查询的时候,用 try{.....}catch {message;}这样哪错了,就知道了!
    估计是有的地方没有释放资源!有错误,但是,你没捕捉错误,所以就好象没反应一样其实你只要检测用户和密码中的一项就可以了,也就是说你只要查询NAME 或者PASSWORD,然后查询条件为Name(textbox1)或者PASSWORD(textbox2)"select Password from HZPersonnel where Name='"+textbox1.text+"'"作为条件的textbox的内容可以用数据填充,也可以用户自己填写且,数据查询前,作为条件的textbox内容不能为空,否则,返回messagebox"error"
    像你的SQL语句的话
    string   strsql   =   "SELECT   Name,   Password   FROM   HZPersonnel   WHERE   Name   ='"   +   textBox1.Text   +   "'and   Password   =   '"   +   textBox2.Text   +   "'"; 其错误就是,用户名和密码都要相等,dr.read()才不为空,否则都为空
      

  4.   

    你的sql语句查询的结果只有当name 和password 都相等的时候, DataReader才会有数据