按顺序从SQL行读取数据

时间:2013-12-10 17:26:54

标签: c# asp.net sql-server

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

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;
        }

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

1 个答案:

答案 0 :(得分:6)

而不是ExecuteScalar,您将需要使用ExecuteReader。

类似的东西:

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();
                 }
           }
      }