저는 사용자가 비교할 항목을 선택할 수 있도록 프로젝트를 진행하고 있습니다. 내 접근 방식은 사용자가 선택한 (쿼리 상자를 사용하여) 쿼리 문자열을 새 페이지 인 compare.aspx로 보내는 것입니다. 나는이 compare.aspx에 대한있는 gridview를 사용하고 여기에 코드입니다 :Visual C#에서 쿼리 문자열을 매개 변수로 사용하여 gridview를 표시합니다.
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="compare.aspx.cs" Inherits="AsiaWebShop.compare" %>
제목 페이지 뒤에
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="item_id" DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField DataField="item_id" HeaderText="item_id" InsertVisible="False"
ReadOnly="True" SortExpression="item_id" />
<asp:BoundField DataField="item_name" HeaderText="item_name"
SortExpression="item_name" />
<asp:BoundField DataField="category" HeaderText="category"
SortExpression="category" />
<asp:BoundField DataField="pic_path" HeaderText="pic_path"
SortExpression="pic_path" />
<asp:BoundField DataField="item_description" HeaderText="item_description"
SortExpression="item_description" />
<asp:BoundField DataField="regular_price" HeaderText="regular_price"
SortExpression="regular_price" />
<asp:BoundField DataField="member_price" HeaderText="member_price"
SortExpression="member_price" />
<asp:BoundField DataField="promo_price" HeaderText="promo_price"
SortExpression="promo_price" />
<asp:BoundField DataField="stock" HeaderText="stock" SortExpression="stock" />
<asp:BoundField DataField="upc" HeaderText="upc" SortExpression="upc" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:awsdbConnectionString %>"
ProviderName="<%$ ConnectionStrings:awsdbConnectionString.ProviderName %>"
SelectCommand="SELECT * FROM [item] WHERE ([upc] = ?)">
<SelectParameters>
<asp:QueryStringParameter Name="upc" QueryStringField="query" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
</div>
</form>
코드 여기에 :
namespace AsiaWebShop
{
public partial class compare : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
SqlDataSource1.SelectCommand = "SELECT * FROM [item] WHERE [upc] = " +Request.QueryString["query"];
}
}
}
그러나 "데이터 형식이 일치하지 않습니다"라는 오류가 발생했습니다. 이유는 무엇입니까? 죄송합니다 나는 asp.net 및 C#에 대한 완벽한 초보자입니다. 제발 .. 제발 ...
Re : "쿼리 매개 변수를 사용하여 SQL 문자열을 작성하는 것은 보안상의 위험이 있습니다."- 말하려는 내용은 정확하지만 문구가 혼동 스럽습니다. SQL 매개 변수도 쿼리 매개 변수입니다. –
보안 위험에 대해 생각 나게 해주셔서 대단히 감사합니다. 그러나 이것은 단지 학교 프로젝트이므로, 당분간은 괜찮을 것이라고 생각합니다. – rexcfnghk
내 코드에서 작은 따옴표를 어디에 포함시켜야하는지 구체적으로 인용 해 주시겠습니까? ? 그리고 ASP.net의 작은 따옴표에 대한 특정 구문이 있습니까? 나는 완전히 새로운 asp.net 및 woud 정말 도움을 주셔서 감사합니다. – rexcfnghk