joelwenzel
Programmer
- Jun 28, 2002
- 448
Hi,
I think I'm very close to getting the DetailsView insert/update/delete to work but I haven't quite got it. Does anyone know what's wrong? Delete and update don't do anything. Insert adds a new row of data in my database, but the values are NULL except for the identity column.
Here is my code. Users2 is a simple table that just contains the columns UserID, FirstName, and LastName.
<script runat="server">
Protected Sub DetailsView1_ItemUpdated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DetailsViewUpdatedEventArgs)
DetailsView1.DataBind()
End Sub
</script>
<asp:SqlDataSource ID="userSqlDataSource" runat="server"
ProviderName="<%$ ConnectionStrings:GolfConnectionString.ProviderName %>"
ConnectionString="<%$ ConnectionStrings:GolfConnectionString %>"
SelectCommand="SELECT * FROM Users2"
InsertCommand="INSERT INTO Users2(FirstName, LastName) VALUES(@FirstName, @LastName)"
DeleteCommand="DELETE FROM Users2 WHERE UserID = @UserID "
UpdateCommand="UPDATE Users2 SET FirstName = @FirstName, LastName = @LastName WHERE UserID = @UserID"
>
<InsertParameters>
<asp:ControlParameter ControlID="DetailsView1" Name="FirstName" PropertyName="SelectedValue" Type="String" />
<asp:ControlParameter ControlID="DetailsView1" Name="LastName" PropertyName="DataItem" Type="String" />
</InsertParameters>
<DeleteParameters>
<asp:ControlParameter ControlID="DetailsView1" Name="UserID" PropertyName="SelectedValue" />
</DeleteParameters>
<UpdateParameters>
<asp:ControlParameter ControlID="DetailsView1" Name="UserID"
PropertyName="SelectedValue" Size="200" Type="Int32" />
<asp:ControlParameter ControlID="DetailsView1" Name="FirstName"
PropertyName="SelectedValue" Size="200" Type="String" />
<asp:ControlParameter ControlID="DetailsView1" Name="LastName"
PropertyName="SelectedValue" Size="200" Type="String" />
</UpdateParameters>
</asp:SqlDataSource>
<asp
etailsView OnItemUpdated="DetailsView1_ItemUpdated" ID="DetailsView1"
runat="server" Height="50px" Width="125px"
DataSourceID="userSqlDataSource" AutoGenerateDeleteButton="True"
AutoGenerateEditButton="True" AutoGenerateInsertButton="True" AutoGenerateRows="False"
AllowPaging="True">
<Fields>
<asp:TemplateField HeaderText="UserID" InsertVisible="False">
<ItemTemplate>
<asp:Label ID="lblUserID" Text='<%# Eval("UserID") %>' runat="server"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="FirstName">
<InsertItemTemplate>
<asp:TextBox ID="txtFirstName" Text='<%# Bind("FirstName") %>' runat="server"></asp:TextBox>
<br />
<asp:RequiredFieldValidator ID="rfvFirstName" runat="server" ControlToValidate="txtFirstName"
ErrorMessage="Invalid"></asp:RequiredFieldValidator>
</InsertItemTemplate>
<ItemTemplate>
<asp:Label ID="lblFirstName" Text='<%# Eval("FirstName") %>' runat="server"></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtEditFirstName" runat="server" Text='<%# Bind("FirstName") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="LastName">
<InsertItemTemplate>
<asp:TextBox ID="txtLastName" Text='<%# Bind("LastName") %>' runat="server"></asp:TextBox>
<br />
<asp:RequiredFieldValidator ID="rfvLastName" runat="server" ErrorMessage="Invalid" ControlToValidate="txtLastName"></asp:RequiredFieldValidator>
</InsertItemTemplate>
<ItemTemplate>
<asp:Label ID="lblLastName" Text='<%# Eval("LastName") %>' runat="server"></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtEditLastName" runat="server" Text='<%# Bind("LastName") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
</Fields>
</asp
etailsView>
I think I'm very close to getting the DetailsView insert/update/delete to work but I haven't quite got it. Does anyone know what's wrong? Delete and update don't do anything. Insert adds a new row of data in my database, but the values are NULL except for the identity column.
Here is my code. Users2 is a simple table that just contains the columns UserID, FirstName, and LastName.
<script runat="server">
Protected Sub DetailsView1_ItemUpdated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DetailsViewUpdatedEventArgs)
DetailsView1.DataBind()
End Sub
</script>
<asp:SqlDataSource ID="userSqlDataSource" runat="server"
ProviderName="<%$ ConnectionStrings:GolfConnectionString.ProviderName %>"
ConnectionString="<%$ ConnectionStrings:GolfConnectionString %>"
SelectCommand="SELECT * FROM Users2"
InsertCommand="INSERT INTO Users2(FirstName, LastName) VALUES(@FirstName, @LastName)"
DeleteCommand="DELETE FROM Users2 WHERE UserID = @UserID "
UpdateCommand="UPDATE Users2 SET FirstName = @FirstName, LastName = @LastName WHERE UserID = @UserID"
>
<InsertParameters>
<asp:ControlParameter ControlID="DetailsView1" Name="FirstName" PropertyName="SelectedValue" Type="String" />
<asp:ControlParameter ControlID="DetailsView1" Name="LastName" PropertyName="DataItem" Type="String" />
</InsertParameters>
<DeleteParameters>
<asp:ControlParameter ControlID="DetailsView1" Name="UserID" PropertyName="SelectedValue" />
</DeleteParameters>
<UpdateParameters>
<asp:ControlParameter ControlID="DetailsView1" Name="UserID"
PropertyName="SelectedValue" Size="200" Type="Int32" />
<asp:ControlParameter ControlID="DetailsView1" Name="FirstName"
PropertyName="SelectedValue" Size="200" Type="String" />
<asp:ControlParameter ControlID="DetailsView1" Name="LastName"
PropertyName="SelectedValue" Size="200" Type="String" />
</UpdateParameters>
</asp:SqlDataSource>
<asp
runat="server" Height="50px" Width="125px"
DataSourceID="userSqlDataSource" AutoGenerateDeleteButton="True"
AutoGenerateEditButton="True" AutoGenerateInsertButton="True" AutoGenerateRows="False"
AllowPaging="True">
<Fields>
<asp:TemplateField HeaderText="UserID" InsertVisible="False">
<ItemTemplate>
<asp:Label ID="lblUserID" Text='<%# Eval("UserID") %>' runat="server"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="FirstName">
<InsertItemTemplate>
<asp:TextBox ID="txtFirstName" Text='<%# Bind("FirstName") %>' runat="server"></asp:TextBox>
<br />
<asp:RequiredFieldValidator ID="rfvFirstName" runat="server" ControlToValidate="txtFirstName"
ErrorMessage="Invalid"></asp:RequiredFieldValidator>
</InsertItemTemplate>
<ItemTemplate>
<asp:Label ID="lblFirstName" Text='<%# Eval("FirstName") %>' runat="server"></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtEditFirstName" runat="server" Text='<%# Bind("FirstName") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="LastName">
<InsertItemTemplate>
<asp:TextBox ID="txtLastName" Text='<%# Bind("LastName") %>' runat="server"></asp:TextBox>
<br />
<asp:RequiredFieldValidator ID="rfvLastName" runat="server" ErrorMessage="Invalid" ControlToValidate="txtLastName"></asp:RequiredFieldValidator>
</InsertItemTemplate>
<ItemTemplate>
<asp:Label ID="lblLastName" Text='<%# Eval("LastName") %>' runat="server"></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtEditLastName" runat="server" Text='<%# Bind("LastName") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
</Fields>
</asp