Forum: ASP.NET2.0 |
Thema:
AW: AW: db Update versagt, wenn in der DB leere Felder vorhanden sind |
Von:
Thomas Lüdtke (
29.08.2006 08:47) |
Beispieldb Adventureworks Address (Person). Addressline2 darf hier NULL sein! Addressline2 ist in den meisten Datensätzen NULL.
Vorbereitungen:
Tabelle auf das leere Blatt ziehen, SQLDataSource und Gridview erstellen sich. Die Queries müssen modifiziert werden (Address -> Person.Address, Rowguid nicht verwenden).
Edit etc. im Gridview aktivieren.
Seite starten.
Wird jetzt ein Datensatz editiert, wird er nicht zurückgeschrieben! Es sind keine Änderungen möglich. Es spielt auch keine Rolle, ob das Property 'ConvertEmptyStringToNull' true ist oder nicht.
Hier noch der Code der Form:
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
<!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>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True"
AutoGenerateColumns="False" DataSourceID="SqlDataSource1" EmptyDataText="There are no data records to display.">
<Columns>
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
<asp:BoundField DataField="AddressID" HeaderText="AddressID" InsertVisible="False"
ReadOnly="True" SortExpression="AddressID" />
<asp:BoundField DataField="AddressLine1" HeaderText="AddressLine1" SortExpression="AddressLine1" />
<asp:BoundField DataField="AddressLine2" HeaderText="AddressLine2" SortExpression="AddressLine2" />
<asp:BoundField DataField="City" HeaderText="City" SortExpression="City" />
<asp:BoundField DataField="StateProvinceID" HeaderText="StateProvinceID" SortExpression="StateProvinceID" />
<asp:BoundField DataField="PostalCode" HeaderText="PostalCode" SortExpression="PostalCode" />
<asp:BoundField DataField="ModifiedDate" HeaderText="ModifiedDate" SortExpression="ModifiedDate" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" CancelSelectOnNullParameter="False"
ConnectionString="<%$ ConnectionStrings:AdventureWorks_DataConnectionString1 %>"
DeleteCommand="DELETE FROM Person.Address WHERE (AddressID = @AddressID)" InsertCommand="INSERT INTO Person.Address(AddressLine1, AddressLine2, City, StateProvinceID, PostalCode,, ModifiedDate) VALUES (@AddressLine1, @AddressLine2, @City, @StateProvinceID, @PostalCode, @ModifiedDate)"
ProviderName="<%$ ConnectionStrings:AdventureWorks_DataConnectionString1.ProviderName %>"
SelectCommand="SELECT AddressID, AddressLine1, AddressLine2, City, StateProvinceID, PostalCode, ModifiedDate FROM Person.Address"
UpdateCommand="UPDATE Person.Address SET AddressLine1 = @AddressLine1, AddressLine2 = @AddressLine2, City = @City, StateProvinceID = @StateProvinceID, PostalCode = @PostalCode, ModifiedDate = @ModifiedDate WHERE (AddressID = @AddressID)">
<DeleteParameters>
<asp:Parameter Name="AddressID" Type="Int32" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="AddressLine1" Type="String" />
<asp:Parameter Name="AddressLine2" Type="String" />
<asp:Parameter Name="City" Type="String" />
<asp:Parameter Name="StateProvinceID" Type="Int32" />
<asp:Parameter Name="PostalCode" Type="String" />
<asp:Parameter Name="ModifiedDate" Type="DateTime" />
<asp:Parameter Name="AddressID" Type="Int32" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="AddressLine1" Type="String" />
<asp:Parameter Name="AddressLine2" Type="String" />
<asp:Parameter Name="City" Type="String" />
<asp:Parameter Name="StateProvinceID" Type="Int32" />
<asp:Parameter Name="PostalCode" Type="String" />
<asp:Parameter Name="ModifiedDate" Type="DateTime" />
</InsertParameters>
</asp:SqlDataSource>
</form>
</body>
</html>
Was mache ich falsch?
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!