2011-02-18 49 views
0

我目前正在一個公會的主頁上工作,這個公會會在不久的將來出現並在裂谷中運行,因此我試圖儘快完成主頁。C#主頁相關問題。 (Request.Querystring [「id」])

無論如何!我通常在VB.NET中編程主頁,當我編程應用程序時,我編程c#。但要在c#中變得更好,我選擇在c#中編寫主頁。

因此,繼承人我的問題,我目前正在嘗試做出一個foreach,所有數據庫的東西在地址欄中的id相關,所以如果我的地址欄顯示「ShowTopics.aspx?id = 1」,那麼一切數據庫中有數字1的表格(我使用了一個名爲fldovertopicid的字段,因此當有人在過度表達中添加一個新的主題時,它會得到與過度編號相同的數字)。雖然問題是它看起來像vb.net編程一樣容易工作。

所以我的繼承人代碼:

在此代碼

我給方法的名字,這樣當我寫的名字後來在我的代碼就知道,那是什麼它應該做的。正如你可以看到ive把一個'Where fldOverTopicID =「+ id;'所以我告訴代碼,我想用fldOverTopicID作爲調解人使代碼知道地址欄號碼相匹配fldOverTopicID時,那麼它應該退出與相同數量的一切。

public DataTable GetUnderTopics(int id) 
    { 
     string strsql = "select fldid, fldtopicname, fldicon, fldcreator from tbltopics where fldOverTopicId=" + id; 
     MySqlCommand objCMD = new MySqlCommand(strsql); 

     return _objdata.GetData(objCMD, _con); 
    } 

這是後端代碼我想在這裏提出的主題是什麼,我試圖告訴它在這裏做的是,如果地址欄中的數字是1,那麼它應該提取所有在其fldOverTopicID中有1的內容,但這是我。讓我的問題,當我做了一段代碼,我得到了2個錯誤:

  1. 的最佳重載的方法匹配「Forumfac.GetUnderTopics( INT)」有一些無效參數

  2. 參數1:不能從轉換‘字符串’到‘廉政’

    Forumfac objfac = new Forumfac(); 
    
        foreach (DataRow row in objfac.GetUnderTopics(Request.QueryString["id"]).Rows) 
        { 
        } 
    

希望我能解釋我的問題不夠清楚。

在此先感謝

回答

2

使用objFac.GetUnderTopics(int.Parse(Request.Querystring["id"]))

您正在爲這需要一個int作爲參數的方法的非法呼叫。所有查詢字符串參數都是字符串。 int.Parse(string)將字符串的值轉換爲整數,如果字符串不是整數,則會拋出異常。還有一個TryParse(string, out int)方法,它返回是否可以轉換字符串並且不拋出異常。

+0

謝謝,我應該誠實地想過解析它我的自我^^ – Etarnalazure 2011-02-18 02:02:41

3

試試這個

string idFromQueryString = Request.QueryString["id"]; 

if (! string.IsNullOrEmpty(idFromQueryString)) 
{ 
    int id = Convert.ToInt32(idFromQueryString); 
    Forumfac objfac = new Forumfac(); 

    foreach (DataRow row in objfac.GetUnderTopics(id).Rows) 
    { 
    } 
} 
+0

謝謝你的答案StackOverflow,不幸我只能選擇一個答案,而另一個答案似乎很容易實現和工作。謝謝你花時間回答,儘管 – Etarnalazure 2011-02-18 02:03:17

1

我投StackOverflowException的答案,因爲它應該工作。但如果我是寫這個我會使用的TryParse是這樣的...

int id; 
if (int.TryParse(Request.QueryString["id"], out id)) 
{ 
    Forumfac objfac = new Forumfac(); 

    foreach (DataRow row in objfac.GetUnderTopics(id).Rows) 
    { 
    } 
} 

它少了一個步驟,並且它會保證可靠的結果,如果ID無法解析。

+0

以及我沒有看到差異。因爲我沒有編程網站解決方案長期與C#。無論哪種方式 - 什麼 - 將張貼工作像一個魅力:) – Etarnalazure 2011-02-18 05:57:37