有陷阱,怎么登录
本文关键字:登录 陷阱 | 更新日期: 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);