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))

顺利通过。

 

转载于:https://www.cnblogs.com/net515/archive/2012/06/07/2539085.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值