Probleme bei der Ausgabe im GridView

Wolfner

Grünschnabel
Hallo,

ich bin noch ein Anfänger und habe ein kleines aber ziemlich unangenehmes Problem bei der Ausgabe von Datensätzen im GridView. Zur besseren Verständlichkeit hier mal der ganze Ablauf ;)

Also: Ich habe eine Access-Datei mit dem Namen "Mitglieder.mdb". In der Datenbank befindet sich die Tabelle "tblMitglieder". Die wiederum enthält die Spalten [Mitglieder_ID], [Nachname], [Vorname], [Adresse], [PLZ], [Ort], [Geburtsdatum].
Die Daten sollen in einer FormView (Default Mode: Insert) eingegeben und in einer GridView direkt darunter in obiger Reihenfolge ausgegeben werden. Soweit so gut, nur jetzt kommt das Problem:

Ich fülle die Felder in der FormView aus und klicke auf "Einfügen". Leider landet nun jede Eingabe in der GridView eine Spalte weiter rechts (bis auf die [Mitglieder_ID] da die automatisch zugewiesen wird). D.h. die Spalte "Nachname" bleibt leer, der Vorname landet in der Adresse-Spalte, die Adresse in der PLZ-Spalte, die PLZ in der Ort-Spalte usw.

Das ganze sieht dann im Endeffekt so aus:

http://www.pic-upload.de/28.12.07/5vwo7y.jpg

(Die Spalte "Klasse" ist nicht so wichtig, daher hab ich sie vorhin weggelassen. Bei PLZ und Geburtsdatum steht nichts drinn weil die Eingabe dafür ja aus "Adresse" und "Ort" käme und dann der Fehler "Datentypen in Kriterienausdruck unverträglich." auftreten würde. Bei "Nachname" steht nichts drinn weil sich eben alles um eines nach rechts verschoben hat)

Kann mir jemand sagen was ich falsch gemacht habe? Es funktioniert nämlich auch nicht wenn ich andere Tabellen benutze? :confused:

MfG
Wolfner
 
Hast du die GridView direkt an deine Datensource gebunden (wenn ja wie) oder befüllst du diese manuell?

Eventuell zeigst du das entsprechende Codestück.
 
Die GridView ist im Menü "GridView Aufgaben" (also bei diesem kleinen Pfeil rechts darüber) über die Funktion "Datenquelle auswählen" mit der AccessDataSource "adsMitglieder" verbunden (die ADS bezieht die Daten aus "~/App_Data/Mitglieder.mdb"). Sie bezieht nur die Spalten, da die Tabelle die in der AccessDataSource ausgewählt ist, leer ist. Befüllt werden soll das ganze über die Eingabe in die FormView darüber.
Sprich: Ich gebe in der FormView die Daten ein und die erscheinen dann (wenns denn richtig funktionieren täte ;) ) darunter in der GridView. Leider bei mir ständig um eines versetzt.

Ich hab mich schon gefragt ob es nicht an der Datenbindung der Eingabefelder in der FormView liegen könnte, aber die verweist ganz normal auf die Spalten aus der GridView.

Ich hoffe das hier ist das benötigte Stückchen Code:

Die GridView:

Code:
  <asp:GridView ID="grvMitglieder" runat="server" AllowPaging="True" AutoGenerateColumns="False"
        DataKeyNames="Mitglieder_ID" DataSourceID="adsMitglieder" AllowSorting="True" OnSelectedIndexChanged="grvMitglieder_SelectedIndexChanged">
        <Columns>
            <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
            <asp:BoundField DataField="Mitglieder_ID" HeaderText="Mitglieder_ID" InsertVisible="False"
                ReadOnly="True" SortExpression="Mitglieder_ID" />
            <asp:BoundField DataField="Nachname" HeaderText="Nachname" SortExpression="Nachname" DataFormatString="{0:d}" />
            <asp:BoundField DataField="Vorname" HeaderText="Vorname" SortExpression="Vorname" />
            <asp:BoundField DataField="Adresse" HeaderText="Adresse" SortExpression="Adresse" />
            <asp:BoundField DataField="PLZ" HeaderText="PLZ" SortExpression="PLZ" />
            <asp:BoundField DataField="Ort" HeaderText="Ort" SortExpression="Ort" />
            <asp:BoundField DataField="Geburtsdatum" HeaderText="Geburtsdatum" SortExpression="Geburtsdatum" />
            <asp:BoundField DataField="Klasse" HeaderText="Klasse" SortExpression="Klasse" />
        </Columns>
    </asp:GridView>

Die AccessDataSource "adsMitglieder":


Code:
<asp:AccessDataSource ID="adsMitglieder" runat="server" DataFile="~/App_Data/Mitglieder.mdb"
        SelectCommand="SELECT * FROM [tblMitglieder]" OnSelecting="adsMitglieder_Selecting" DeleteCommand="DELETE FROM [tblMitglieder] WHERE [Mitglieder_ID] = ?" InsertCommand="INSERT INTO [tblMitglieder] ([Nachname], [Vorname], [Adresse], [PLZ], [Ort], [Geburtsdatum], [Klasse]) VALUES (?, ?, ?, ?, ?, ?, ?)" UpdateCommand="UPDATE [tblMitglieder] SET [Nachname] = ?, [Vorname] = ?, [Adresse] = ?, [PLZ] = ?, [Ort] = ?, [Geburtsdatum] = ?, [Klasse] = ? WHERE [Mitglieder_ID] = ?">
        <DeleteParameters>
            <asp:Parameter Name="Mitglieder_ID" Type="Int32" />
        </DeleteParameters>
        <UpdateParameters>
            <asp:Parameter Name="Nachname" Type="String" />
            <asp:Parameter Name="Vorname" Type="String" />
            <asp:Parameter Name="Adresse" Type="String" />
            <asp:Parameter Name="PLZ" Type="Int32" />
            <asp:Parameter Name="Ort" Type="String" />
            <asp:Parameter Name="Geburtsdatum" Type="DateTime" />
            <asp:Parameter Name="Klasse" Type="String" />
            <asp:Parameter Name="Mitglieder_ID" Type="Int32" />
        </UpdateParameters>
        <InsertParameters>
            <asp:Parameter Name="Mitglieder_ID" Type="Int32" />
            <asp:Parameter Name="Nachname" Type="String" />
            <asp:Parameter Name="Vorname" Type="String" />
            <asp:Parameter Name="Adresse" Type="String" />
            <asp:Parameter Name="PLZ" Type="Int32" />
            <asp:Parameter Name="Ort" Type="String" />
            <asp:Parameter Name="Geburtsdatum" Type="DateTime" />
            <asp:Parameter Name="Klasse" Type="String" />
        </InsertParameters>
    </asp:AccessDataSource>

Ahja, ich benutze den Visual Web Developer 2005 Express Edition.

MfG
Wolfner
 
Zuletzt bearbeitet:
Bitte die Tags [ CODE ] und [ / CODE ] verwenden (ohne Leerzeichen, dann ist der Code auch besser zu lesen.

Hmm ... nimm mal
Code:
<asp:Parameter Name="Mitglieder_ID" Type="Int32" />
heraus ... (bei den InsertParameters)
 
Sehr schön!
Das hat geholfen!

Vielen Dank :)

Ahja, bevor ich einen neuen Beitrag aufmache hätte ich noch ein kleines Problem:
Ich hab eine Masterpage mit Bildern und Bannern gestaltet. Nur wenn ich bei einer beliebigen Seite die diese Masterpage verwendet auf F5 für einen Test drücke werden die nicht angezeigt. Woran kann das liegen?

MfG
Wolfner
 
Bitte für unterschiedliche Fragen einen unterschiedlichen Thread aufmachen.

Und wenn eine Frage beantwortet wurde, bitte auf Erledigt klicken.
 

Neue Beiträge

Zurück