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方法获取数据,并与登录表单中的登录信息进行比较

请帮帮我…谢谢。

C#中的Select方法出错

SqlDataReader dr = new SqlDataReader();更改为SqlDataReader dr;但是在你的代码中仍然有几个严重的问题:

  1. 当DataReader包含一些数据时,您的连接永远不会关闭(当您从数据读取器读取所有数据时,连接应该关闭)
  2. 您应该使用SqlParameter将参数传递给命令,否则有人可以对您的代码使用SQL注入
  3. 您正在使用两次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"没有构造函数定义

我该如何修复它?我应该从哪里开始?