把生活写成首诗 2020-03-25 22:59 采纳率: 83.3%
浏览 203
已采纳

c# 数据库也有数据,用的网上的Sqldbhelper类,但为什么调用getgardedata时说 在没有任何数据时进行无效的读取尝试

public class Grade
    {
        private int gradeid = 0;
        private string gradename = string.Empty;
        public int Gradeid
        {
            get { return gradeid; }
            set { gradeid = value; }
        }


        public string Gradename
        {
            get { return gradename; }
            set { gradename = value; }
        }


    }
 public List<Grade> getgardedata()
       {
           List<Grade> grades = new List<Grade>();
           string sql = "select * from Grade";  

           while(SqlDBHelper.ExecuteReader(sql).Read())
           {
               Grade grade = new Grade();
               grade.Gradeid = Convert.ToInt32(SqlDBHelper.ExecuteReader(sql)["GradeID"]);
               grade.Gradename = Convert.ToString(SqlDBHelper.ExecuteReader(sql)["Gradename"]);
               grades.Add(grade);
           }
           return grades;
       } 
 public static SqlDataReader ExecuteReader(string commandText, CommandType commandType, SqlParameter[] parameters)
        {
            SqlConnection connection = new SqlConnection(connString);
            SqlCommand command = new SqlCommand(commandText, connection);
            command.CommandType = commandType;
            //如果同时传入了参数,则添加这些参数
            if (parameters != null)
            {
                foreach (SqlParameter parameter in parameters)
                {
                    command.Parameters.Add(parameter);
                }
            }
            connection.Open();
            //CommandBehavior.CloseConnection参数指示关闭Reader对象时关闭与其关联的Connection对象
            return command.ExecuteReader(CommandBehavior.CloseConnection);
        }
        /// <summary>
        /// 将 CommandText 发送到 Connection 并生成一个 SqlDataReader。
        /// </summary>
        /// <param name="commandText">要执行的查询SQL文本命令</param>
        /// <returns></returns>
        public static SqlDataReader ExecuteReader(string commandText)
        {
            return ExecuteReader(commandText, CommandType.Text, null);
        }

图片说明

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-03-25 23:51
    关注

    while(SqlDBHelper.ExecuteReader(sql).Read())
    {
    Grade grade = new Grade();
    grade.Gradeid = Convert.ToInt32(SqlDBHelper.ExecuteReader(sql)["GradeID"]);
    grade.Gradename = Convert.ToString(SqlDBHelper.ExecuteReader(sql)["Gradename"]);
    grades.Add(grade);
    }
    ->
    var reader = SqlDBHelper.ExecuteReader(sql);
    while(reader.Read())
    {
    Grade grade = new Grade();
    grade.Gradeid = Convert.ToInt32(reader["GradeID"]);
    grade.Gradename = Convert.ToString(reader["Gradename"]);
    grades.Add(grade);
    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器