2011-02-18 36 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