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ße" HeaderText="Straße" SortExpression="Straß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ß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 />
</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
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ße" HeaderText="Straße" SortExpression="Straß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ß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 />
</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
Comment