2011-01-11 43 views
2

我有一個sqldatasource列表視圖和鏈接按鈕不會被解僱,但如果我使用作爲數據源一個字符串數組,他們會被解僱。我在代碼中丟失了什麼嗎?sqldatasource問題

aspx頁面:

<% 
    SqlDataSourceArticoleUser.ConnectionString = conn; 
    SqlDataSourceArticoleUser.SelectCommand = "SELECT top 10 * FROM (SELECT ROW_NUMBER() OVER (ORDER BY id desc) AS Row, * FROM articole) AS EMP WHERE Row >" + pag + " and username='" + user + "'"; 
      %> 
<asp:ListView ID="ListViewArticoleUser" runat="server" DataSourceID="SqlDataSourceArticoleUser"> 
       <LayoutTemplate> 
        <ul> 
         <asp:PlaceHolder ID="itemPlaceholder" runat="server" /> 
        </ul> 
       </LayoutTemplate> 
       <ItemTemplate> 
        <asp:LinkButton ID="LinkButtonEditArticolEdit" runat="server" Text="edit" CommandName="articoledit"></asp:LinkButton> 
        <asp:LinkButton ID="LinkButtonStergeArticolEdit" runat="server" Text="sterge" CommandName="articolsterge"></asp:LinkButton> 
       </ItemTemplate> 
</asp:ListView> 
<asp:SqlDataSource ID="SqlDataSourceArticoleUser" runat="server"></asp:SqlDataSource> 

aspx.cs頁:

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!Page.IsPostBack) 
     { 
      SqlDataSourceArticoleUser.DataBind(); 
     } 
    } 
    protected void Page_Init(object sender, EventArgs e) 
    { 
     ListViewArticoleUser.ItemCommand += new EventHandler<ListViewCommandEventArgs>(ListViewArticoleUser_EventHandler); 
    } 
    protected void ListViewArticoleUser_EventHandler(object sender, ListViewCommandEventArgs e) 
    { 
     if (e.CommandName == "articolsterge") 
     { 
     } 
    } 
+0

另外,提醒我在該網站上使用的用戶名註冊:「;刪除* from articole; – Robaticus 2011-01-11 19:23:19

回答

1

我認爲你缺少的東西。當你使用一個字符串數組作爲數據源,將使用默認的C# dataadapter,其中包含有關刪除,更新和插入的說明。

當您使用sql數據源時,您必須配置.net將如何處理這些操作。我可以看到你只是配置了選擇操作。要有一個功能齊全的sqldatasource,我認爲你必須填寫其他操作。

檢查這篇文章,以幫助您處理數據源:http://quickstarts.asp.net/QuickStartv20/aspnet/doc/ctrlref/data/sqldatasource.aspx

專門這一部分:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:Pubs %>" 
    SelectCommand="SELECT [au_id], [au_lname], [au_fname], [state] FROM [authors]" 
    UpdateCommand="UPDATE [authors] SET [au_id] = @au_id, [au_lname] = @au_lname,[au_fname] = @au_fname, [state] = @state WHERE [au_id] = @original_au_id" 
    DeleteCommand="DELETE FROM [authors] WHERE [au_id] = @original_au_id"/>