Announcement

Collapse
No announcement yet.

Fehler :cannot insert value null bei gästebucheintrag

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

  • Fehler :cannot insert value null bei gästebucheintrag

    Hallo,
    ich habe mir ein gästebuch mit windows web developer und sql server erstellt,
    jetzt habe ich das problem und bekomme den fehler:Cannot insert the value NULL into column 'name', table 'db235216996.dbo235216996.gbuch'; column does not allow nulls. INSERT fails.
    The statement has been terminated.

    ich kann zwar eine null in der tabelle zulassen, aber dann steht ja nichts im gästebuch.

    Wie kann ich das verhindern?

    Sorry,habe mir das alles selber beigebracht.
    Wäre super wenn mir das jemand erklären könnte.

    die daten werden mit einem sql datasource element in ein detailsview eingetragen und über ein gridview wieder ausgegeben.

    ich poste mal den code der seite:
    <%@ Page Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="false" CodeFile="gbuch.aspx.vb" Inherits="gbuchneu" title="Gästebuch" %>
    <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    <div style="width: 100%">
    <table style="width: 100%" bordercolor="#ff00ff">
    <tr>
    <td style="height: 100px">
    </td>
    <td style="height: 100px">
    <span style="font-size: 24pt; color: #ffff00; font-family: X-Files; height: 100px">Gästebuch</span></td>
    <td style="height: 100px">
    </td>
    </tr>
    <tr>
    <td style="height: 207px">
    </td>
    <td style="height: 207px; width: 500px; text-align: center;">
    <aspetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" DataKeyNames="id"
    DataSourceID="SqlDataSource1" DefaultMode="Insert" Font-Names="X-Files" Font-Size="12pt"
    HeaderText="Neuer Eintrag:" Height="285px" Style="width: 500px; text-align: center;" Width="542px">
    <RowStyle ForeColor="Yellow" />
    <Fields>
    <asp:BoundField DataField="name" HeaderText="Name" SortExpression="name">
    <ControlStyle Width="300px" />
    </asp:BoundField>
    <asp:BoundField DataField="email" HeaderText="Email" SortExpression="email">
    <ControlStyle Width="300px" />
    </asp:BoundField>
    <asp:BoundField DataField="text" HeaderText="Kommentar" SortExpression="text">
    <ControlStyle Width="300px" />
    <ItemStyle Wrap="True" />
    </asp:BoundField>
    <asp:CommandField ShowInsertButton="True" />
    </Fields>
    <HeaderStyle ForeColor="Yellow" />
    </aspetailsView>
    </td>
    <td style="height: 207px">
    </td>
    </tr>
    <tr>
    <td style="height: 71px">
    </td>
    <td style="width: 500px; height: 71px; text-align: left">
    <span style="font-size: 14pt; color: #ffff00; font-family: X-Files">Einträge :</span></td>
    <td style="height: 71px">
    </td>
    </tr>
    <tr>
    <td style="height: 237px">
    </td>
    <td style="width: 500px;">
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="id"
    DataSourceID="SqlDataSource1" Style="width: 500px" BorderStyle="Dotted" Font-Names="X-Files" Font-Size="12pt" Height="253px" Width="554px">
    <Columns>
    <asp:TemplateField>
    <ItemTemplate>
    <table style="height: 30px; width: 500px;">
    <tr>
    <td style="width: 150px; height: 15px; text-align: left;">
    Von :</td>
    <td style="width: 200px; height: 15px; text-align: left;">
    <asp:Label ID="Label1" runat="server" Text='<%# Eval("name") %>'></asp:Label></td>
    <td style="width: 150px; height: 15px; text-align: right;">
    <asp:Label ID="Label2" runat="server" Text='<%# Eval("datum") %>'></asp:Label></td>
    </tr>
    <tr>
    <td style="width: 150px; height: 19px; text-align: left;">
    Email :</td>
    <td style="width: 200px; height: 19px; text-align: left;">
    <asp:Label ID="Label3" runat="server" Text='<%# Eval("email") %>'></asp:Label></td>
    <td style="width: 150px; height: 19px;">
    </td>
    </tr>
    <tr>
    <td style="vertical-align: top; width: 150px; height: 50px; text-align: left">
    Kommentar :&nbsp;</td>
    <td style="width: 106px; height: 50px; text-align: left">
    <asp:Label ID="Label4" runat="server" Height="50px" Text='<%# Eval("text") %>' Width="62px"></asp:Label></td>
    </tr>
    </table>
    <br />
    </ItemTemplate>
    </asp:TemplateField>
    </Columns>
    <RowStyle ForeColor="Yellow" />
    </asp:GridView>
    &nbsp;
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConflictDetection="CompareAllValues"
    ConnectionString="<%$ ConnectionStrings:ConnectionString %>" DeleteCommand="DELETE FROM [Gbuch] WHERE [id] = @original_id AND [datum] = @original_datum AND [name] = @original_name AND [email] = @original_email AND [text] = @original_text"
    InsertCommand="INSERT INTO [Gbuch] ([datum], [name], [email], [text]) VALUES(getdate(), @name, @email, @text)"
    OldValuesParameterFormatString="original_{0}" SelectCommand="SELECT [id], [datum], [name], [email], [text] FROM [Gbuch] ORDER BY [datum] DESC"
    UpdateCommand="UPDATE [Gbuch] SET [datum] = @datum, [name] = @name, [email] = @email, [text] = @text WHERE [id] = @original_id AND [datum] = @original_datum AND [name] = @original_name AND [email] = @original_email AND [text] = @original_text">
    <DeleteParameters>
    <asp:Parameter Name="original_id" Type="Byte" />
    <asp:Parameter Name="original_datum" Type="DateTime" />
    <asp:Parameter Name="original_name" Type="String" />
    <asp:Parameter Name="original_email" Type="String" />
    <asp:Parameter Name="original_text" Type="String" />
    </DeleteParameters>
    <UpdateParameters>
    <asp:Parameter Name="datum" Type="DateTime" />
    <asp:Parameter Name="name" Type="String" />
    <asp:Parameter Name="email" Type="String" />
    <asp:Parameter Name="text" Type="String" />
    <asp:Parameter Name="original_id" Type="Byte" />
    <asp:Parameter Name="original_datum" Type="DateTime" />
    <asp:Parameter Name="original_name" Type="String" />
    <asp:Parameter Name="original_email" Type="String" />
    <asp:Parameter Name="original_text" Type="String" />
    </UpdateParameters>
    <InsertParameters>
    <asp:Parameter Name="datum" Type="DateTime" />
    <asp:Parameter Name="name" Type="String" />
    <asp:Parameter Name="email" Type="String" />
    <asp:Parameter Name="text" Type="String" />
    </InsertParameters>
    </asp:SqlDataSource>
    </td>
    <td style="height: 237px">
    </td>
    </tr>
    </table>
    </div>
    &nbsp;<br />
    <br />
    <br />
    <br />
    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server">
    </asp:Content>
    Zuletzt editiert von basti78; 30.03.2008, 02:31.

  • #2
    Hi,

    also den Code wollte ich mir nicht antun, aber warum prüfst Du nicht einfach vor dem Insert in die Datenbank, ob das Feld "Name" gefüllt ist und gibst dann eine entsprechende Fehlermeldung aus?

    Viele Grüße

    Achim

    Comment

    Working...
    X