Hi Chris,
ich habe versucht das Page.Validate() einzuf�gen (unter Page_Load und auch
direkt vor dem if-statement).
Das hat leider �berhaupt nichts gebracht, es kommt noch immer die selbe
Meldung.
Ich will damit ja bezwecken das wenn ein Feld leer ist gar nicht erst in die
DB geschrieben wird.
Sonst noch eine Idee?
Gruss, Christian
> From: "Christian Haemmerle" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Date: Fri, 26 Dec 2003 18:16:40 +0100
> Subject: [Asp.net] IsValid Auswertung funktioniert nicht?!
> Reply-To: [EMAIL PROTECTED]
>
> 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>
> <font size="2">*Alle gekennzeichneten Felder
werden
> ben�tigt um einen
> Datensatz hinzuzuf�gen.</font>
> </p>
> </font>
> <p>
> </p>
> </form>
> </body>
> </html>
>
>
> --__--__--
>
> Message: 2
> Date: Fri, 26 Dec 2003 20:01:04 +0100
> To: [EMAIL PROTECTED]
> From: Christoph Wille <[EMAIL PROTECTED]>
> Subject: Re: [Asp.net] IsValid Auswertung funktioniert nicht?!
> Reply-To: [EMAIL PROTECTED]
>
> At 06:16 PM 12/26/2003, you wrote:
> >Ich verwende einen RequiredFieldValidator f=FCr die Textfelder.
> >Im C# code pr=FCfe ich dann auf "Page.IsValid" um dann abh=E4ngig 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=E4nge Null sein.
>
> Der Fehler tritt auf, weil in der Zeile
>
> hinzufuegen.Parameters.Add("@Telefonnummer", Telefonnummer.Text);
>
> der Wert der Textbox Telefonnummer leer ist. Schon mal Page.Validate()
vor=
> =20
> dem if Statement ausprobiert einzuf=FCgen?
>
> Chris
>
_______________________________________________
Asp.net mailing list
[EMAIL PROTECTED]
http://www.glengamoi.com/mailman/listinfo/asp.net