2017-05-21 7 views
0

Daten erhalten von einem serial port, aber nicht mit deklarieren Zeichenfolge vergleichen und ich möchte das unit_consumed Feld in Datensatztabelle in der Datenbank aktualisieren. While-Schleife funktioniert auch. Ich möchte wissen, wie serielle Daten mit String verglichen werden und dann das Datenbankfeld aktualisieren.Daten vom seriellen Port, aber Datenbank nicht aktualisiert

int unit = 0; 
     string s = "unit_consumed"; 
     SerialPort myport = new SerialPort(); 
     myport.BaudRate = 9600; 
     myport.PortName = "COM4"; 
     myport.Open(); 
     while(true) 
     { 
      string data_rx = myport.ReadLine(); 
      File.AppendAllText("test_file.txt", data_rx + "\n"); 
      unit = unit + 1; 
      if (string.Equals(data_rx,s)) 
      { 
       SqlConnection con = new SqlConnection("Data Source=MIAN\\SQLEXPRESS;Initial Catalog=arduino;Integrated Security=True"); 
       con.Open(); 
       SqlCommand cmd = new SqlCommand("insert into record(unit_consumed) values(@unit_consumed) ", con); 
       cmd.Parameters.AddWithValue("@unit_consumed", unit); 
       con.Close(); 
      } 
      Console.WriteLine(data_rx); 
+0

Haben Sie sichergestellt, dass diese 'String.Equals (data_rx, s)' wahr ist? –

+0

string.equals (data_rx, s) funktioniert auch nicht. Daten schreiben auch in Textdatei und es enthält unit_consumed Zeile, aber ich weiß nicht, warum strings.equals nicht funktioniert. –

+0

Es sollte funktionieren, versuchen Sie, "If (string.Equals (data_rx, s))" zu "if (data_rx.ToLower(). Enthält (s))", um sicherzustellen, dass nichts fehlt –

Antwort

0

Ihre Abfrage wird nicht ausgeführt.

Versuchen:

SqlConnection con = new SqlConnection("Data Source=MIAN\\SQLEXPRESS;Initial Catalog=arduino;Integrated Security=True"); 
con.Open(); 
SqlCommand cmd = new SqlCommand("insert into record(unit_consumed) values(@unit_consumed) ", con); 
cmd.Parameters.AddWithValue("@unit_consumed", unit); 

// ********** need to execute 
cmd.ExecuteNonQuery(); 

con.Close(); 
Verwandte Themen