我正在编写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;
}
我愿意接受任何建议。 谢谢。
答案 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
}
}