Announcement

Collapse
No announcement yet.

Tabelle Datensatz hinzufügen (Laufzeit)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Tabelle Datensatz hinzufügen (Laufzeit)

    Hallo zusammen,

    Ich (Anfänger) habe eine Tabelle, die ich mit einem Gridview anzeigen lasse. Diese möchte ich zur Laufzeit mit mehreren Textboxen und einem "Einfügen"-Button im Browser erweitern. Ich benutze das Buch ASP 2.0 mit Visual Basic 2005 (Holger Schwichtenberg). Dort soll das ganze mit nur wenigen Zeilen Code möglich sein:
    Über Parameter Datenquellensteuerelement sagen, woher es beim Insert Daten beziehen soll.
    Die manuell eingefügte Schaltfläche (Mein Button oder ?) muss Datensteuerelement sagen, was es tun soll
    Me.SqlDataSource1.Insert

    Leider funktioniert es nicht.
    Hier mein Quellcode:

    <%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Test.aspx.vb" Inherits="WebApplication6._Default" %>

    <%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
    Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
    <title>Text zum Einfügen</title>
    </head>
    <body style="color: #000000">
    <form id="form1" runat="server">
    <span style="font-size: 24pt">Kundentabelle</span><br />
    <br />
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" BackColor="White"
    BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" CellPadding="3" DataKeyNames="Kdnr"
    DataSourceID="SqlDataSource1" Height="256px" Width="512px">
    <FooterStyle BackColor="White" ForeColor="#000066" />
    <Columns>
    <asp:BoundField DataField="Kdnr" HeaderText="Kdnr" ReadOnly="True" SortExpression="Kdnr" />
    <asp:BoundField DataField="Vorname" HeaderText="Vorname" SortExpression="Vorname" />
    <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
    <asp:BoundField DataField="Stra&#223;e" HeaderText="Stra&#223;e" SortExpression="Stra&#223;e" />
    <asp:BoundField DataField="Plz" HeaderText="Plz" SortExpression="Plz" />
    </Columns>
    <RowStyle ForeColor="#000066" />
    <SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
    <PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" />
    <HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />
    </asp:GridView>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server"
    ConnectionString="<%$ ConnectionStrings:ConnectionString %>" DeleteCommand="DELETE FROM [t_customer] WHERE [Kdnr] = @original_Kdnr"
    InsertCommand="INSERT INTO [t_customer] ([Kdnr], [Vorname], [Name], [Straße], [Plz]) VALUES (@Kdnr, @Vorname, @Name, @Straße, @Plz)"
    OldValuesParameterFormatString="original_{0}" SelectCommand="SELECT * FROM [t_customer]"
    UpdateCommand="UPDATE [t_customer] SET [Vorname] = @Vorname, [Name] = @Name, [Straße] = @Straße, [Plz] = @Plz WHERE [Kdnr] = @original_Kdnr">
    <DeleteParameters>
    <asp:Parameter Name="original_Kdnr" Type="Int32" />
    </DeleteParameters>
    <UpdateParameters>
    <asp:Parameter Name="Vorname" Type="String" />
    <asp:Parameter Name="Name" Type="String" />
    <asp:Parameter Name="Stra&#223;e" Type="String" />
    <asp:Parameter Name="Plz" Type="String" />
    <asp:Parameter Name="original_Kdnr" Type="Int32" />
    </UpdateParameters>
    <InsertParameters>
    <asp:ControlParameter ControlID="C_Kdnr" Name="Kundennummer" PropertyName="Text" Type="String" />
    <asp:ControlParameter ControlID="C_Vorname" Name="Vorname" PropertyName="Text" Type="String" />
    <asp:ControlParameter ControlID="C_Name" Name="Name" PropertyName="Text" Type="String" />
    <asp:ControlParameter ControlID="C_Straße" Name="Straße" PropertyName="Text" Type="String" />
    <asp:ControlParameter ControlID="C_Plz" Name="Plz" PropertyName="Text" Type="String" />
    </InsertParameters>
    </asp:SqlDataSource>
    <br />
    Kdnr<br />
    <asp:TextBox ID="C_Kdnr" runat="server"></asp:TextBox><br />
    Vorname<br />
    <asp:TextBox ID="C_Vorname" runat="server"></asp:TextBox><br />
    Name<br />
    <asp:TextBox ID="C_Name" runat="server"></asp:TextBox><br />
    Straße<br />
    <asp:TextBox ID="C_Straße" runat="server"></asp:TextBox><br />
    Plz<br />
    <asp:TextBox ID="C_Plz" runat="server"></asp:TextBox><br />
    <br />
    <asp:Button ID="C_Hinzufügen" runat="server" Text="Hinzufügen" /><br />
    &nbsp;
    </form>
    </body>
    </html>


    Me.SqlDataSource.Insert() füge ich in das Fenster ein, dass sich beim Doppelklick auf meinen Button öffnet.

    Protected Sub C_Hinzufügen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles C_Hinzufügen.Click
    Me.SqlDataSource1.Insert()
    End Sub

    Die Parameter habe ich im Quellcode unter <asp:SqlDataSource...
    eingegeben. Hoffe das war verständlich.
    Danke für Eure Hilfe

    Mfg Niq

  • #2
    Hallo,

    sorry Fehlermeldung vergessen.
    Visual Studio sagt:
    SqlException wurde nicht von Benutzercode behandelt.
    Die Variable '@Kdnr' muss deklariert werden.

    Danke

    Comment


    • #3
      InsertParameters>
      <asp:ControlParameter ControlID="C_Kdnr" Name="Kundennummer" PropertyName="Text" Type="String" />
      vielleicht statt Kundennummer kdnr ?

      Comment

      Working...
      X