按顺序从SQL行读取数据

Lor*_*lix 1 c# sql-server asp.net

我正在开发一个流程,我基本上需要读取大量客户数据,对数据应用一些计算和流程,然后将它们保存到其他地方.我知道如何做我想做的事,但我不知道的是如何顺序读取数据(逐行).现在,我正在阅读帐户数量,所以我可以循环.这就是我所拥有的:

SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Connection"].ConnectionString);
          conn.Open();
          SqlCommand comm = new SqlCommand("SELECT COUNT(*) FROM Accounts WHERE ID = @ID AND Open = 1", conn);
          comm.Parameters.AddWithValue("@ID", Session["ID"]);
          Int32 count = (Int32)comm.ExecuteScalar();
//testing purposes              
Label3.Text = count.ToString();

        int i = 0;
        while (i <= count)
        {
            //READ COMMAND HERE?


            i = i + 1;


        }



        if (i == count)
        {
           //loading bar
            UpdateProgress1.Visible = false;
        }
Run Code Online (Sandbox Code Playgroud)

现在循环内部(我猜!)我需要执行一个代码来读取ID = @ID的每一行的数据,读取数据,使用一些进程(我知道如何工作)并更新数据(也知道如何去做这个).我只需要能够读取数据,我不知道如何.帮助将不胜感激!

MDi*_*sel 6

您将需要使用ExecuteReader而不是ExecuteScalar.

就像是:

SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Connection"].ConnectionString);
      conn.Open();
      SqlCommand comm = new SqlCommand("SELECT * FROM Accounts WHERE ID = @ID AND Open = 1", conn);
      comm.Parameters.AddWithValue("@ID", Session["ID"]);
      using(var dataReader = comm.ExecuteReader())
      {
          if(dataReader.HasRows)
           {
                while(dataReader.Read())
                {
                    var myRowColumn1 = dataReader["NameOfColumnInDataBase"].ToString();
                 }
           }
      }
Run Code Online (Sandbox Code Playgroud)