2016-08-09 4 views
1

Ich möchte das leere Textfeld an Access Database übergeben (Datentyp: Number), aber es zeigt Fehler (Datentyp stimmt nicht mit den Kriterien überein Ausdruck)C# - Microsoft Access: Empty TextBox konnte keine Daten an Access Database übergeben (Datentyp: Number)

-Code unten verwendet wurde.

oleDBCommand.CommandText = 
"INSERT INTO tblRoutineChemAnalData ([Sample1 Vol]) VALUES (@Sample1Vol)"; 


oleDBCommand.Parameters.Add(new OleDbParameter("@Sample1Vol", textBoxSample1.Text)); 

Anmerkung 1: wenn Typ der Access-Datenbank Feld Datensatz zu Kurztext/Langtext, war Code feinen zu laufen, wenn die textboxSample1 leer ist.

Hinweis 2: Wenn Access-Datenbank Typ Feld Datensatz zu Nummer (Doppel), war Code Fehler läuft wenn die textboxSample1 leer war. Fehlerbeschreibung,

Nicht übereinstimmender Datentyp in Kriterienausdruck.

Darf ich wissen, was das Verfahren ist das leere Textfeld übergeben Datenbank zuzugreifen, die mit Nummer (double) als Datentyp?

Antwort

1

Sie können den DBNull.Value wie folgt verwenden.

double output = 0; 
if (double.TryParse(textBoxSample1.Text, out output)) 
{ 
    oleDBCommand.Parameters.Add(new OleDbParameter("@Sample1Vol", output)); 
} 
else 
{ 
    oleDBCommand.Parameters.Add(new OleDbParameter("@Sample1Vol", DBNull.Value)); 
} 

Stellen Sie sicher, dass das Feld Sample1Vol Nullwerte akzeptiert.

Update: Um es für mehrere Felder zu verwenden, wickeln Sie es in einer Funktion wie dieser.

private OleDbParameter CreateOleDbParameter(string parameterName, string parameterValue) 
{ 
    double output = 0; 
    if (double.TryParse(parameterValue, out output)) 
    { 
     return new OleDbParameter(parameterName, output); 
    } 
    else 
    { 
     return new OleDbParameter(parameterName, DBNull.Value); 
    } 
} 

Jetzt verwenden wie diese

oleDBCommand.Parameters.Add(CreateOleDbParameter("@Sample1Vol", textBoxSample1.Text)); 
+0

die DBNull.Value getestet und ich auch den gleichen Fehler. (Datentyp stimmt nicht mit dem Kriterienausdruck überein.) – user6648485

+0

Ich hatte das Feld mit Validierungsregel (leer) und Erforderlich (Nein) festgelegt. Es sollte Nullwert akzeptieren. – user6648485

+0

versuchte AddWithValue? – naveen