我一直在做一個項目,讓用戶選擇比較項目一個gridview。我的做法是從用戶的選擇(使用複選框)發送查詢字符串到新頁面compare.aspx。我使用一個GridView這個compare.aspx這裏是代碼:Visual C#中使用顯示作爲查詢字符串參數
<%@ 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#,所以請去容易對我...
回覆:「這是一個安全隱患撰寫使用查詢參數的SQL字符串,」 - 什麼你想要說的是正確的,但措辭是混亂的。 SQL參數也是查詢參數。 – 2011-03-19 21:17:09
非常感謝你提醒我有關的安全風險,但由於這僅僅是一個學校的項目,我認爲這將是罰款暫且:) – rexcfnghk 2011-03-20 06:35:46
你介意具體報價,我應該包括在我的代碼的單引號? ASP.net中是否有單引號的特定語法?我是全新的asp.net,並且非常感謝你的幫助。 – rexcfnghk 2011-03-20 06:41:47