Передайте NavigateUrl Id на следующую страницу оператора Sql - PullRequest
0 голосов
/ 11 октября 2011

Я кодирую страницу «Список всех товаров» в asp.net. Я сделал соединение с БД для 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>

URL-адрес навигации работает, и я вижу выбранное "? 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 голосов
/ 13 октября 2011

Вот как это работает для меня:

    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
    }
     }
0 голосов
/ 11 октября 2011

Я немного озадачен вашим кодом, но похоже, что вам просто нужно извлечь id из QueryString и построить с ним SQL-запрос, верно?

Это то, что вы пытаетесь сделать?:

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

Вы можете соединить запрос, используя идентификатор из QueryString, вы можете сделать что-то вроде этого:

//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"]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...