C# ExecuteReader:尚未初始化连接属性。如何解决这个问题?

C# ExecuteReader:尚未初始化连接属性。如何解决这个问题?,c#,sql,database,connection,C#,Sql,Database,Connection,我有这个代码,我想从数据库中读取数据,然后比较它们。visualbasic说 “ExecuteReader:尚未初始化连接属性。” 有什么帮助吗?看起来您没有初始化属性。没有这一点,您的程序就无法知道如何使用SqlConnection执行SqlCommand。只需添加 int tempid,temp1,temp2,temp3,temp4,temp5,temp6; { SqlCommand cmd = new SqlCommand("select * from Szelvenyek");

我有这个代码,我想从数据库中读取数据,然后比较它们。visualbasic说

“ExecuteReader:尚未初始化连接属性。”


有什么帮助吗?

看起来您没有初始化属性。没有这一点,您的程序就无法知道如何使用
SqlConnection
执行
SqlCommand
。只需添加

int tempid,temp1,temp2,temp3,temp4,temp5,temp6;
{
    SqlCommand cmd = new SqlCommand("select * from Szelvenyek");
    SqlConnection cn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=D:\Iskola\C#\lotto_kerekeshunor\lotto_kerekeshunor\Database1.mdf;Integrated Security=True;User Instance=True");
    cn.Open();
    SqlDataReader dr = cmd.ExecuteReader();
    while (dr.Read())
    {
        tempid = (int)dr["ID"];
        temp1 = (int)dr["elso"];
        temp2 = (int)dr["masodik"];
        temp3 = (int)dr["harmadik"];
        temp4 = (int)dr["negyedik"];
        temp5 = (int)dr["otodik"];
        temp6 = (int)dr["hatodik"];

        if (r1 == temp1 || r1 == temp2 || r1 == temp3 || r1 == temp4 || r1 == temp5 || r1 == temp6) talalat[tempid]++;
        if (r2 == temp1 || r2 == temp2 || r2 == temp3 || r2 == temp4 || r2 == temp5 || r2 == temp6) talalat[tempid]++;
        if (r3 == temp1 || r3 == temp2 || r3 == temp3 || r3 == temp4 || r3 == temp5 || r3 == temp6) talalat[tempid]++;
        if (r4 == temp1 || r4 == temp2 || r4 == temp3 || r4 == temp4 || r4 == temp5 || r4 == temp6) talalat[tempid]++;
        if (r5 == temp1 || r5 == temp2 || r5 == temp3 || r5 == temp4 || r5 == temp5 || r5 == temp6) talalat[tempid]++;
        if (r6 == temp1 || r6 == temp2 || r6 == temp3 || r6 == temp4 || r6 == temp5 || r6 == temp6) talalat[tempid]++;
    }
}
或者您可以将
SqlConnection
作为第二个参数传递给
SqlCommand
构造函数(我总是喜欢这样)

还可用于处理
SqlConnection
SqlCommand
SqlDataReader

SqlCommand cmd = new SqlCommand("select * from Szelvenyek", cn);

这很容易忘记。您可以手动设置属性,也可以在连接后习惯性地构造命令,以便将其传递给构造函数:

using(SqlConnection cn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=D:\Iskola\C#\lotto_kerekeshunor\lotto_kerekeshunor\Database1.mdf;Integrated Security=True;User Instance=True"))
using(SqlCommand cmd = new SqlCommand("select * from Szelvenyek", cn))
{
   cn.Open();
   using(SqlDataReader dr = cmd.ExecuteReader())
   {
      while(dr.Read())
      {
         ///
      }
   }
}

谢谢,我已经找了一个小时了!Visual Basic与此有什么关系?
using(SqlConnection cn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=D:\Iskola\C#\lotto_kerekeshunor\lotto_kerekeshunor\Database1.mdf;Integrated Security=True;User Instance=True"))
using(SqlCommand cmd = new SqlCommand("select * from Szelvenyek", cn))
{
   cn.Open();
   using(SqlDataReader dr = cmd.ExecuteReader())
   {
      while(dr.Read())
      {
         ///
      }
   }
}
SqlConnection cn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=D:\Iskola\C#\lotto_kerekeshunor\lotto_kerekeshunor\Database1.mdf;Integrated Security=True;User Instance=True");

SqlCommand cmd = new SqlCommand("select * from Szelvenyek", cn);