将NavigateUrl Id传递给下一页Sql语句

时间:2011-10-11 15:47:33

标签: asp.net sql session

我正在编写asp.net中的“列出所有产品”页面。我做了从DB到ViewList的连接。现在我必须使产品可点击。到目前为止我在asp部分编写的内容如下:

<div class="image">
      <asp:HyperLink ID="HyperLinkSaleDesign" runat="server" NavigateUrl='<%# Eval("ID" ,  "~/EN/ViewTemplate.aspx?id={0}") %>'>
          <asp:Image ID="ImageSaleDesign" runat="server" Width="247" Height="150" ImageUrl='<%# Eval("thumb") %>' />
            </asp:HyperLink>
</div>

导航网址有效,我可以看到所选的“?id = {0}”。 但是我无法正确传递数据,因此下一页上的SQL查询不起作用。

我不知道如何将此值传递给Select语句。以下是我到目前为止所做的事情:

    String IDquery = ("QueryStringParameter[ID]"); // doesn't work

        try
        {
            string ConnectionString = WebConfigurationManager.ConnectionStrings["Twebconfig"].ConnectionString;
            SqlConnection viewTemplate = new SqlConnection(ConnectionString);

            SqlDataAdapter viewTemplateSet = new SqlDataAdapter("SELECT " +
            " * FROM saleDesigns WHERE ID = @IDquery", viewTemplate); // doesn't seem to see the variable

            Data Binding - etc. etc. etc
        }
        catch (Exception err)
        {
            mylabel.Text = "Invalid " + err.Message;
        }

我愿意接受任何建议。 谢谢。

2 个答案:

答案 0 :(得分:0)

我对您的代码感到有点困惑,但看起来您只需要从QueryString中检索id并使用它构建SQL查询,对吧?

这是你想要做的吗?:

int id = int.Parse(Request.QueryString["id"]);

您可以使用QueryString中的ID将查询放在一起,您可以执行以下操作:

//just an example - should be parameterized to avoid injection
string query = String.Format("SELECT ID, Col1, Col2 FROM Table1 WHERE ID={0}", Request.QueryString["ID"]);

答案 1 :(得分:0)

这是我的工作方式:

    int v = 0;
try
{
   int v = int.Parse(Request.QueryString["id"]);
}
catch (Exception e)
{}
        if (v > 0)
        {

            try
            {
                string ConnectionString = WebConfigurationManager.ConnectionStrings["connstring"].ConnectionString;
                SqlConnection conn = new SqlConnection(ConnectionString);//explisionremoteEntities

                string query = String.Format("SELECT * FROM table WHERE ID={0}", Request.QueryString["ID"]);
                SqlDataAdapter viewTemplateSet = new SqlDataAdapter(query, conn);
    }
    catch
    {
        //code in here
    }
     }