在asp.net中执行while功能 [英] Do while function in asp.net
问题描述
这是经典asp中的代码,我想在asp.net中执行此操作.我在asp.net中使用数据列表.我怎样才能做到这一点.请帮忙
Here the code in classic asp, i want to do this in asp.net. I am using datalist in asp.net. How can i do this. Please help
<%
set con=Server.CreateObject("ADODB.Connection")
con.Open strcon
set rs=Server.CreateObject("ADODB.Recordset")
rs.Open "SELECT * FROM category where article_allow=1",con,0,1
do while not rs.eof
article_visit=0
set rst=Server.CreateObject("ADODB.Recordset")
rst.Open "SELECT article_visit FROM article_list where cat_ID="&rs("cat_ID")&" and article_status=1",con,0,1
do while not rst.eof
article_visit=rst("article_visit")+article_visit
rst.MoveNext
loop
set rst=nothing
%>
在此先感谢
请在c#
中提供我的代码
我将经典的asp代码转换为C#,但结果为0,请检查以下代码:
字符串article_visit ="0";
SqlConnection con = Database.GetConnection();
DataTable data = new DataTable();
SqlCommand sqlQuery = new SqlCommand("select * from category where article_allow = 1",con);
SqlDataAdapter dataAdapter =新的SqlDataAdapter(sqlQuery);
//将dataAdapter设置为新的OdbcDataAdapter(sqlQuery,connectionString)
dataAdapter.Fill(data);
//Dim index As Integer = 0
int index = 0;
做
{
article_visit ="0";
SqlCommand cmd =新的SqlCommand(从article_list中选择article_visit,其中cat_ID = @ cat_id和article_status = 1",con);
cmd.Parameters.AddWithValue("@ cat_id",data.Rows [index] ["cat_ID"]);
dataAdapter =新的SqlDataAdapter(cmd);
DataTable data1 = new DataTable();
dataAdapter.Fill(data1);
int index1 = 0;
做
{
article_visit = int.Parse(data1.Rows [index1] ["article_visit"].ToString())+ article_visit;
index1 = index1 + 1;
} while(index1< data1.Rows.Count);
index = index + 1;
} while(index< data.Rows.Count);
Thanks in advance
Please provide me the code in c#
I convert the classic asp code to C# like this but it gives the result is 0, please check this code:
string article_visit="0";
SqlConnection con=Database.GetConnection();
DataTable data=new DataTable();
SqlCommand sqlQuery=new SqlCommand("select * from category where article_allow = 1", con);
SqlDataAdapter dataAdapter=new SqlDataAdapter(sqlQuery);
//Dim dataAdapter As New OdbcDataAdapter(sqlQuery, connectionString)
dataAdapter.Fill(data);
//Dim index As Integer = 0
int index=0;
do
{
article_visit="0";
SqlCommand cmd=new SqlCommand("SELECT article_visit FROM article_list where cat_ID=@cat_id and article_status=1",con);
cmd.Parameters.AddWithValue("@cat_id", data.Rows[index]["cat_ID"]);
dataAdapter=new SqlDataAdapter(cmd);
DataTable data1=new DataTable();
dataAdapter.Fill(data1);
int index1=0;
do
{
article_visit=int.Parse(data1.Rows[index1]["article_visit"].ToString()) + article_visit;
index1=index1+1;
}while(index1<data1.Rows.Count);
index=index+1;
}while(index<data.Rows.Count);
推荐答案
此MSDN [
this MSDN[^] article is a good place to start.
It covers most of your requirements
通过以下列出的用VB.NET编写的步骤,您可以在ASP.NET中完成相同的操作:
1)如果您在页面加载时正在执行此过程,则转到page_load事件并在其中编写以下代码,或者在您想要的适当事件中编写以下代码
2)在类文件的顶部添加名称空间
The same thing you can do in ASP.NET by following below listed steps which written in VB.NET:
1) If you are doing this process when your page is loading then go to page_load event and write below code in that OR write below code in appropriate event where you want
2) add name Namespace at top of the class file
Imports System.Data.Odbc
3)复制以下代码并根据您的要求进行测试
3) Copy below code and test it as per your requirement
Dim article_visit As Integer = 0
Dim connectionString As String = "Your connection string"
Dim data As DataTable = New DataTable()
Dim sqlQuery As String = "SELECT * FROM category where article_allow=1"
Dim dataAdapter As New OdbcDataAdapter(sqlQuery, connectionString)
dataAdapter.Fill(data)
Dim index As Integer = 0
Do
article_visit = 0
sqlQuery = "SELECT article_visit FROM article_list where cat_ID=" & data.Rows(index)("cat_ID") & " and article_status=1"
dataAdapter = New OdbcDataAdapter(sqlQuery, connectionString)
Dim data1 = New DataTable()
dataAdapter.Fill(data1)
Dim index1 As Integer = 0
Do
article_visit = Integer.Parse(data1.Rows(index1)("article_visit")) + article_visit
index1 = index1 + 1
Loop
While index1 < data1.Rows.Count
End While
index = index + 1
Loop
While index < data.Rows.Count
End While
Dim con As New System.Data.OleDb.OleDbConnection
Dim cmd As New OleDbCommand("seelct * from category where article_allow = 1", con)
Dim rs, rst As OleDbDataReader
Dim article_visit As String = "0"
con.Open()
rs = cmd.ExecuteReader()
While (rs.Read())
Dim cmdrst As New OleDbCommand("SELECT article_visit FROM article_list where cat_ID=" & rs("cat_ID") & " and article_status=1", con)
rst = cmdrst.ExecuteReader()
While (rst.Read())
article_visit = rst("article_visit") + article_visit
End While
//close datareader object
rst.Close()
rst = Nothing
//dispose command object
cmdrst.Dispose()
cmd = Nothing
End While
rs.Close()
rs = Nothing
希望对您有帮助
hope it helps
这篇关于在asp.net中执行while功能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!