为什么我不能ExecuteNonQuery()?

LMi*_*Pop 1 c# sql-server combobox winforms

这是我的代码:

   private void loadlist()
   {
      comboBox1.Items.Clear();
      cn.Open();
      cmd.CommandText = "Select * from info";
      dr = cmd.ExecuteNonQuery();
      if (dr.HasRows)
      {
         while (dr.Read())
         {
            comboBox1.Items.Add(dr[0].ToString());
         }
         cn.Close();
      }
    }
Run Code Online (Sandbox Code Playgroud)

此行发生错误:

dr = cmd.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)

我在用 System.Data.SqlClient;

和:

SqlConnection cn = new SqlConnection(@"//HERE IS MY STRING CONNECTION");
SqlCommand cmd = new SqlCommand();
SqlDataReader dr;
Run Code Online (Sandbox Code Playgroud)

Sys*_*own 9

这是一个正确的代码SqlDataReader:

dr = cmd.ExecuteReader();
Run Code Online (Sandbox Code Playgroud)

ExecuteNonQuery()仅用于(惊讶,惊讶)查询的事情,即不返回数据的SQL命令(如UPDATE和DELETE).

您还需要为该命令分配连接.

cmd.Connection = cn;
cn.Open();
Run Code Online (Sandbox Code Playgroud)

您还应该记得在完成后关闭阅读器和连接.或者使用一个using