我正在开发一个流程,我基本上需要阅读大量客户数据,对数据应用一些计算和流程,然后将其保存到其他地方。我知道如何做我想做的事,但我不知道的是如何顺序读取数据(逐行)。现在,我正在阅读帐户数量,所以我可以循环。这就是我所拥有的:
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的每一行的数据,读取数据,使用一些进程(我知道如何工作)并更新数据(也知道怎么做)。我只需要能够读取数据,我不知道如何。帮助将不胜感激!
答案 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();
}
}
}