在asp.net中执行while功能 [英] Do while function in asp.net

查看:53
本文介绍了在asp.net中执行while功能的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是经典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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆