zoukankan      html  css  js  c++  java
  • ExecuteReader: Connection 属性尚未初始化。错误解决

    读取student表中的数据打印到屏幕,代码

     1    class Program
     2     {
     3         static void Main(string[] args)
     4         {
     5             string sqlc = @"server=.\sqlexpress;database=MyDataBase15_31;uid=sa;pwd=sa";
     6             using (SqlConnection sqlconn = new SqlConnection(sqlc))
     7             {
     8                 string sql = @" select * from student ";
     9                 using (SqlCommand sqlcom = new SqlCommand(sql))
    10                 {
    11                     if (sqlconn.State == ConnectionState.Closed) //ConnectionState 枚举 描述与数据源的连接的当前状态。
    12                     {    //State 指示 SqlConnection 的状态。 
    13 
    14                         sqlconn.Open();
    15                         //Console.WriteLine("成功");
    16                     }
    17                     SqlDataReader reader = sqlcom.ExecuteReader();//若要创建 SqlDataReader,必须调用 SqlCommand 对象的 ExecuteReader 方法,而不要直接使用构造函数。
    18                     using (reader)
    19                     {
    20                         if (reader.HasRows)
    21                         {
    22                             //if (reader.Read())
    23                                 while(reader.Read())
    24                             {
    25                                 Console.WriteLine("{0}{1}{2}{3}{4}",
    26                                     reader["sId"],
    27                                     reader["sName"],
    28                                     reader["sAge"],
    29                                     reader["sGender"],
    30                                     reader["sClass"]
    31                                     );
    32                             }
    33 
    34                         }
    35                     }
    36                 }
    37 
    38             }
    39 
    40         }
    41     }

    F6生成成功,F5报异常:ExecuteReader: Connection 属性尚未初始化。

    问题分析:看到Connection,想到数据库连接失败,通过//Console.WriteLine("成功");排除错误,仔细验证SQL语句,没有问题,百度了一下有说代码中多次调用DataReader的函数,可能是因为打开太多的链接,但是检查后还是没有发现问题,这时突然看到问题所在:

    using (SqlCommand sqlcom = new SqlCommand(sql)) 

    SqlCommand()缺少参数,真是大意,改正后

    using (SqlCommand sqlcom = new SqlCommand(sql,sqlconn))

    顺利通过。

  • 相关阅读:
    Mysql数据库再度使用
    搭建wamp php环境
    phpMyAdmin
    windows激活全系列
    web常见之音乐播放器
    web常见效果之轮播图
    ASP.NET Web Pages
    Eclipse配置中文(汉化)
    以有涯随无涯
    How to get the edited text from itext in fabricjs
  • 原文地址:https://www.cnblogs.com/net515/p/2539085.html
Copyright © 2011-2022 走看看