2010-08-16 170 views
2

我創建了參數化查詢來獲取文章/頁面內容,如下所示;通過參數化查詢傳遞值

<% 
     article = cint(request("article")) 

     Set conn = Server.CreateObject("ADODB.connection") 
     conn.Open Application("database") 
     Set cmd = Server.CreateObject("ADODB.command") 
     With cmd 
       .ActiveConnection = conn 
       .CommandType = adCmdStoredProc 
       .CommandText = "prc_getArticle" 
       .Parameters.Append .CreateParameter("@ArticleID", adInteger, adParamInput,, article) 
       Set rsArticle = .Execute 
     End With 
     While Not rsArticle.EOF 

     article = rsArticle.fields("art_id") 
     arttitle = rsArticle.fields("art_title") 
     artcontent = rsArticle.fields("art_content") 

     rsArticle.MoveNext 
     Wend 
     rsArticle.Close() 
     Set rsArticle = Nothing 
%> 

上面的查詢被放置在一個包含文件,它要求從頁面中的「文章」,以獲得文章內容,但我不知道如何再通過對查詢通過這一點。

我在查詢中有以下行;

.Parameters.Append .CreateParameter("@ArticleID", adInteger, adParamInput,, article) 

注意最後的'文章',但顯然這不是從這一行引用請求文章的正確方法;

article = cint(request("article")) 

在我的實際頁面中,我包含一個具有上述代碼的文件,然後在頁面中也有以下內容;

<% 
article = 22 
%> 

<h1><%=arttitle%></h1> 

顯然此刻,這不是抓取內容輸出到頁面。想知道如果有人能夠在我的相當冗長的問題後提供幫助嗎?

謝謝。 :D

+0

的確詳細而複雜......究竟是什麼問題?是'rsArticle'工作時的第一個代碼嗎?因爲,如果是這樣,你實際上「通過參數化查詢傳遞值」就好了。 – cregox 2010-08-16 16:48:13

回答

2

您需要創建一個Class來定義來自DB的獲取輸出和一個Function以創建該類的適當實例,並填入文章詳細信息。

修改您的包含文件這一點: -

Public Class Article 
    public ID 
    public Title 
    public Content 
End Class 

Function GetArticle(article) 

    Dim conn: Set conn = Server.CreateObject("ADODB.connection") 
    conn.Open Application("database") 

    Dim cmd: Set cmd = Server.CreateObject("ADODB.command") 
    Dim rsArticle 
    cmd.ActiveConnection = conn 
    cmd.CommandType = adCmdStoredProc 
    cmd.CommandText = "prc_getArticle" 
    cmd.Parameters.Append cmd.CreateParameter("@ArticleID", adInteger, adParamInput,, article) 
    Dim rsArticle: Set rsArticle = cmd.Execute 

    IF Not rsArticle.EOF Then 
     Set GetArticle = new Article; 

     GetArticle.ID = rsArticle.fields("art_id") 
     GetArticle.Title = rsArticle.fields("art_title") 
     GetArticle.Content = rsArticle.fields("art_content") 
    Else 
     Set GetArticle = Nothing 
    End If 

    rsArticle.Close() 
End Function 

有了這個包括在地方,你可以這樣做: -

<% 
    Dim article : Set article = GetArticle(22) 
%> 

<h1><%=article.Title%></h1> 
<div><%=article.Content%></div> 
+0

嘿安東尼,非常感謝你。這裏只有一個錯誤; Microsoft VBScript編譯錯誤「800a03f2」,預期標識符/includes/pagecontent.asp,第2行 公共類文章 ------- ^ – doubleplusgood 2010-08-16 13:06:08

0

剛過了「Set rsArticle = Nothing」試試這個,讓我們知道了什麼發生:

<h1><%= arttitle %></h1> 
    <%= article %> - <%= artcontent %>