Hallo,

ich habe begonnen mich in ASP.NET unter Verwendung von C# einzuarbeiten.
Bei einem kleinen �bungsbeispiel (Telefondatenbank), tritt folgendes auf.

Ich verwende einen RequiredFieldValidator f�r die Textfelder.
Im C# code pr�fe ich dann auf "Page.IsValid" um dann abh�ngig davon in die
Datenbank zu schreiben oder eben auch nicht.
Wie ich es auch drehe und wende, die if-Bedingung scheint auf diese
Page.IsValid-Eigenschaft nicht zu reagieren.
Es erscheint immer die Felhermeldung:

Ausnahmedetails: System.Data.OleDb.OleDbException: Feld
'Telefon.Telefonnummer' darf keine Zeichenfolge der L�nge Null sein.

Weiss jemand bescheid?

Ich habe den kompletten code zum ausprobieren angeh�ngt, es wird noch eine
access DB ben�tigt mit dem Namen: "Telefon.mdb",
der Tabellenname ist "Telefon", die Spalten "Vorname", "Nachname",
"Telefonnummer" sind Text-Felder, die Spalte "Id" ist auf AutoWert.

Vielen Dank, Gruss,

Christian


<%@ Page Language="C#" Debug="True" Trace="True" %>
<%@ import Namespace="System.Data.OleDb" %>
<script runat="server">



    void Page_Load (Object src, EventArgs e)
    {
    if (!IsPostBack)
    {
    LoadTelefonliste();
    }
    }

    void LoadTelefonliste()
    {
    OleDbConnection connection = new OleDbConnection
("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" +
Server.MapPath("Telefon.mdb"));
    connection.Open();

    OleDbCommand ListeLaden = new OleDbCommand ("SELECT Vorname, Nachname,
Telefonnummer, Id FROM Telefon", connection);
    OleDbDataReader einlesen = ListeLaden.ExecuteReader();

    TelefonListe.Items.Clear();

    while (einlesen.Read())
    {
    TelefonListe.Items.Add(new ListItem(einlesen.GetString(0) + " " +
einlesen.GetString(1) + " " + einlesen.GetString(2),
einlesen.GetInt32(3).ToString() ));
    }

    einlesen.Close();
    connection.Close();
    }

    void loeschen_Click(Object sender, EventArgs e)
    {
    if (TelefonListe.SelectedIndex > -1)
    {
    OleDbConnection connection = new OleDbConnection
("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" +
Server.MapPath("Telefon.mdb"));
    connection.Open();

    OleDbCommand EintragLoeschen = new OleDbCommand ("DELETE FROM Telefon
WHERE [EMAIL PROTECTED]", connection);
    EintragLoeschen.Parameters.Add("@Id", TelefonListe.SelectedItem.Value);
    EintragLoeschen.ExecuteNonQuery();

    connection.Close();

    LoadTelefonliste();
    }
    }

    void Hinzufuegen_Click(Object sender, EventArgs e)
    {
    if (Page.IsValid == true)
    {
    OleDbConnection connection = new OleDbConnection
("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" +
Server.MapPath("Telefon.mdb"));
    connection.Open();

    OleDbCommand hinzufuegen = new OleDbCommand ("INSERT INTO Telefon
(Vorname, Nachname, Telefonnummer) VALUES (@Vorname, @Nachname,
@Telefonnummer)", connection);
    hinzufuegen.Parameters.Add("@Vorname", Vorname.Text);
    hinzufuegen.Parameters.Add("@Nachname", Nachname.Text);
    hinzufuegen.Parameters.Add("@Telefonnummer", Telefonnummer.Text);
    hinzufuegen.ExecuteNonQuery();

    connection.Close();

    LoadTelefonliste();
    }
    }

</script>
<html>
<head>
</head>
<body>
    <form runat="server">
        <p align="center">
            <font size="4"><strong><u>Telefonverzeichnis</u></strong></font>
        </p>
        <font size="4">
        <p align="left">
            <asp:ListBox id="TelefonListe" runat="server" Height="154px"
Width="578px"></asp:ListBox>
        </p>
        <p align="left">
            <asp:Button id="loeschen" onclick="loeschen_Click"
runat="server" Text="L�schen"></asp:Button>
        </p>
        <p align="left">
            <table style="WIDTH: 452px; HEIGHT: 95px">
                <tbody>
                    <tr>
                        <td>
                            Vorname*:</td>
                        <td>
                            <asp:TextBox id="Vorname"
runat="server"></asp:TextBox>
                            <asp:RequiredFieldValidator
id="RequiredFieldValidator1" runat="server" EnableClientScript="False"
ControlToValidate="Vorname" ErrorMessage="Bitte Vornamen eingeben."
Visible="False"></asp:RequiredFieldValidator>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            Nachname*:</td>
                        <td>
                            <asp:TextBox id="Nachname"
runat="server"></asp:TextBox>
                            <asp:RequiredFieldValidator
id="RequiredFieldValidator2" runat="server" EnableClientScript="False"
ControlToValidate="Nachname" ErrorMessage="Bitte Nachnamen eingeben."
Visible="False"></asp:RequiredFieldValidator>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            Telefonnummer*:</td>
                        <td>
                            <asp:TextBox id="Telefonnummer"
runat="server"></asp:TextBox>
                            <asp:RequiredFieldValidator
id="RequiredFieldValidator3" runat="server" EnableClientScript="False"
ControlToValidate="Telefonnummer" ErrorMessage="Bitte Telefonnummer
eingeben." Visible="False"></asp:RequiredFieldValidator>
                        </td>
                    </tr>
                </tbody>
            </table>
            <asp:Button id="Hinzufuegen" onclick="Hinzufuegen_Click"
runat="server" Text="Hinzuf�gen"></asp:Button>
            &nbsp;&nbsp;<font size="2">*Alle gekennzeichneten Felder werden
ben�tigt um einen
            Datensatz hinzuzuf�gen.</font>
        </p>
        </font>
        <p>
        </p>
    </form>
</body>
</html>

_______________________________________________
Asp.net mailing list
[EMAIL PROTECTED]
http://www.glengamoi.com/mailman/listinfo/asp.net

Antwort per Email an