有陷阱,怎么登录

本文关键字:登录 陷阱 | 更新日期: 2023-09-27 18:12:25

private void d_Load(object sender, EventArgs e)
    {
        string connstring = @"Data Source=.'SQLEXPRESS;AttachDbFilename=|DataDirectory|'it155.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
        SqlConnection conn = new SqlConnection(connstring);
        try
        {
            conn.Open();
            string snumber = txtSnumber.Text;
            SqlCommand get = new SqlCommand(@"Select from IStudent where SNumber ='" + txtSnumber.Text + "'", conn);
        }
        catch (Exception)
        {
        }
    }

给出上面写的代码的开始,我打算做的是能够使用id号数据类型varchar(11)在sql数据库中登录,该数据库将在txtSnumber中输入,但除此之外,我不知道如何检查输入的id号是否正确,如果是正确的,输入的id号对应的信息应该显示在相应的文本框中。请帮帮我,谢谢

有陷阱,怎么登录

你的sql语句容易被sql注入。像这样连接SQL是一种糟糕的做法。不如这样做:

string snumber = txtSnumber.Text;
SqlCommand get = new SqlCommand(@"Select from IStudent where SNumber =@User", conn);
get.Parameters.AddWithValue("@User",snumber);

现在,为了检查是否找到了记录,您可以这样做:

using(IDataReader reader =  get.ExecuteReader())
{
       if (reader.HasRows)
       {
          //information correct. Do something
       }
}

您可以使用DataReader()

来检查它。
   SqlCommand get = new SqlCommand(@"Select from IStudent where SNumber ='" + txtSnumber.Text + "'", conn); 
   SqlDataReader myReader = get.ExecuteReader();
  if (myReader.HasRows)
  {
    MessageBox.Show("ID is valid");
    while (myReader.Read())
      //Do something here        
  }
  else
    MessageBox.Show("Given ID is Invalid.");
编辑:

在调用ExecuteReader()方法时,您将以下参数放入其中,以便在您关闭连接时数据读取器也自动关闭。

SqlDataReader myReader = get.ExecuteReader(CommandBehavior.CloseConnection);