C#中的Select方法出错
本文关键字:出错 方法 Select 中的 | 更新日期: 2023-09-27 18:28:38
我创建了一个用于连接SQL Server Express的类。我写了一个获取数据的方法,但没有用。
我在db
课堂上写了这篇文章:
public class DB
{
private SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)'v11.0;AttachDbFilename=D:'Dev'Project'C#'internships'Internships'Internships.mdf;Integrated Security=True");
private SqlCommand cmd = new SqlCommand();
public DB()
{
con.Open();
cmd.Connection = con;
}
public SqlDataReader select(string query)
{
cmd.CommandText = query;
SqlDataReader dr=cmd.ExecuteReader();
if (dr.Read())
return dr;
con.Close();
return dr;
}
}
我想使用上述select
方法获取数据,并与登录表单中的登录信息进行比较
请帮帮我…谢谢。
将SqlDataReader dr = new SqlDataReader();
更改为SqlDataReader dr;
但是在你的代码中仍然有几个严重的问题:
- 当DataReader包含一些数据时,您的连接永远不会关闭(当您从数据读取器读取所有数据时,连接应该关闭)
- 您应该使用SqlParameter将参数传递给命令,否则有人可以对您的代码使用SQL注入
- 您正在使用两次Read()方法,但在第一次之后,您不关心结果,所以您只忽略第一条记录
我有以下代码:
DB db = new DB();
SqlDataReader dr = new SqlDataReader();
string username = txtUsername.Text;
string pass = txtPassword.Text;
if (rdoStu.Checked)
dr=db.select("Select * from tbl_stu where stuId='" + username + "'and mcode='" + pass +"'");
else if (rdoTch.Checked)
dr=db.select("select * from tbl_tch where tchId='" + username + "'and mcode='" + pass+"'");
if (dr.Read())
{
MessageBox.Show("Welcome");
}
然而,它向我抛出了一条错误消息:
错误"System.Data.SqlClient.SqlDataReader"没有构造函数定义
我该如何修复它?我应该从哪里开始?