Domanda

Recentemente ho guardato i video di Plural Sight ASP.NET sul legame dei dati e mi sono imbattuto in controlli di origine dati dichiarativi come <asp:SqlDataSource />.

Ho difficoltà a capire perché non sono in grado di inserire un titolo di film predefinito e una data di uscita nella mia tabella di film in un database SQL Server 2008. Fino a questo punto non ho avuto problemi e sono stato in grado di accedere alla tabella tramite SelectCommand tramite una gridview, ma quando faccio clic sul pulsante Inserisci film, i nuovi parametri del film realizzati manualmente non vengono aggiunti al tavolo.

Ecco il mio codice per un aspetto migliore:

InsertCommand="INSERT INTO movies (title, release_date) VALUES (@title, @release_date)"
SelectCommand="SELECT TOP 30 movie_id, title, release_date FROM movies ORDER BY movie_id DESC"
runat="server" ID="_moviesDataSource" DataSourceMode="DataReader">
<InsertParameters>
    <asp:Parameter Name="title" />
    <asp:Parameter Name="release_date"/>
</InsertParameters>
</asp:SqlDataSource>
<asp:Button ID="Button1" runat="server" Text="Insert new movie" 
    onclick="Button1_Click" /><br /><br />
<asp:GridView ID="_moviesGridInsert" runat="server" DataSourceID="_moviesDataSource">
</asp:GridView>

Come potresti notare sopra, non avevo il type = "..." nel tag parametro ASP, ma prima di questo avevo i tipi pari alla stringa per il titolo e DateTime per rilascio_date. Il problema potrebbe essere che i valori che ho impostato nel mio database siano diversi rispetto a quelli che ho dichiarato sopra?

C# back-end di esso:

protected void Button1_Click(object sender, EventArgs e)
{
    Page.MaintainScrollPositionOnPostBack = true;

    // TODO - Insert movie (manually inserted with just user input of button click)
    _moviesDataSource.InsertParameters["title"].DefaultValue = "My movie";
    _moviesDataSource.InsertParameters["release_date"].DefaultValue = "01/01/2008";
    _moviesDataSource.Insert();
}

Non mi è ancora permesso di pubblicare immagini, quindi aggiungere la griglia non è possibile, anche se ti aiuterebbe se potessi visualizzare la tabella stessa ... ma comunque, la tabella, una volta fatto clic sul pulsante, rimane lo stesso e Quando guardo nel database, i nuovi valori non vengono aggiunti.

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top