将varchar值转换为数据类型int时转换失败

时间:2013-12-24 20:25:02

标签: c# asp.net gridview hyperlink

我有GridView并且在gridview中我有一个女巫的超链接我试图将查询字符串传递到另一个页面。 ID是INT类型,但不确定为什么我收到此错误:

  

转换varchar值时转换失败' {0}&#39>到数据类型   INT

当我在不使用超链接的情况下自己加载详细信息页面时,它对我有用,但是当我点击超链接时,我得到了上面提到的这个错误。这是我的超链接代码:

<asp:TemplateField>
   <ItemTemplate>
      <asp:HyperLink ID="HyperLink2" Text="VIEW DETAIL" runat="server" NavigateUrl= "~/DET/MARKETING.aspx?ID={0}"  Target="_blank">HyperLink</asp:HyperLink>
   </ItemTemplate>
</asp:TemplateField>

以下是详细信息页面的代码:

protected void Page_Load(object sender, EventArgs e)
    {

        if (!Page.IsPostBack)
        {
            string QUEST_SK = Request.QueryString["QUEST_SK"].ToString();
            // string MPost_ID = "773";
            sqlcon.Open();
            sqlcmd = new SqlCommand("SELECT ID, DESC  FROM Table1 WHERE ID= '" + ID+ "'  ", sqlcon);
            da = new SqlDataAdapter(sqlcmd);
            da.Fill(dt);
            sqlcon.Close();
            GridView1.DataSource = dt;
            GridView1.DataBind();
            sqlcon.Close();
        }
    }

1 个答案:

答案 0 :(得分:1)

SQL语句中的问题

protected void Page_Load(object sender, EventArgs e)
    {

        if (!Page.IsPostBack)
        {
            string QUEST_SK = Request.QueryString["QUEST_SK"].ToString();
            // string MPost_ID = "773";
            sqlcon.Open();
            sqlcmd = new SqlCommand("SELECT ID, DESC  FROM Table1 WHERE ID= " + ID, sqlcon);
            da = new SqlDataAdapter(sqlcmd);
            da.Fill(dt);
            sqlcon.Close();
            GridView1.DataSource = dt;
            GridView1.DataBind();
            sqlcon.Close();
        }
    }

您可以使用Eval

<asp:TemplateField>
       <ItemTemplate>
          <asp:HyperLink ID="HyperLink2" Text="VIEW DETAIL" runat="server" NavigateUrl= '<%# Eval("id","~/DET/MARKETING.aspx?ID={0}") %>'  Target="_blank">HyperLink</asp:HyperLink>
       </ItemTemplate>
    </asp:TemplateField>

<asp:TemplateField>
   <ItemTemplate>
      <asp:HyperLink ID="HyperLink2" Text="VIEW DETAIL" runat="server" NavigateUrl= '~/DET/MARKETING.aspx?ID=<%# Eval("ID") %>'  Target="_blank">HyperLink</asp:HyperLink>
   </ItemTemplate>
</asp:TemplateField>