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的每一行的数据,读取数据,使用一些进程(我知道如何工作)并更新数据(也知道如何去做这个).我只需要能够读取数据,我不知道如何.帮助将不胜感激!
您将需要使用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)
| 归档时间: |
|
| 查看次数: |
952 次 |
| 最近记录: |