Hallo,
eigentlich bin ich ja Administratror, muss aber immer ein paar Kleinigkeiten selber programmieren, nun bin ich auf folgendes Problem gestossen:
Ich lese ein XML-Dokument ein => Kein Problem
Aber nun muss ich ein zusätzliches Feld im SQL-Server speichern und zwar einen
bool-wert (Exportiert = true).
Frage:
Wie kann ich aus .Net den Datentyp bool in Bit am SqlServer konvertieren?
Vielen Dank für Eure Hilfe.
Fehlermeldung:
Der Name "True" ist in diesem Kontext nicht zulässig. Gültige Ausdrücke sind Konstanten, konstante Ausdrücke und <in bestimmten Kontexten> Variablen. Splatennamen sind nicht zulässig.
Hier der QuellCodeAusschnitt:
foreach (Begl b in arrBegls)
{
//Hier ist das Problem
bool bExportiert = true
string ID = (b.strBSNR + b.strBSNR_JAHR);
int BSNR = Convert.ToInt32(b.strBSNR);
int BSNR_JAHR = Convert.ToInt32(b.strBSNR_JAHR);
int ABFALLNR = Convert.ToInt32(b.strABFALLNR);
double MENGE_KG = Convert.ToDouble(b.strMENGE_KG);
string SqlCmd = "INSERT INTO BS" +
"(ID, BSNR, BSNR_JAHR, BSNR_QUELLE, ABFALLNR, ABFALLNRSPEZ, ABFALLNAME, RD_CODE, MENGE_KG, UEBERGEBERNR, UEBERGEBER_NAME, UEBERGEBER_STRASSE, UEBERGEBER_ORT, UEBERGEBER_PLZ, UEBERGEBER_STAAT, UEBERNAHMEDATUM, UEBERNAHME_PLZ, TRANSPORTART, BEMERKUNG, Exportiert )"
+ "VALUES" +
"('" + ID + "'," + BSNR + "," + BSNR_JAHR +
",'" + b.strBSNR_QUELLE + "'," + ABFALLNR + ",'" + b.strABFALLNRSPEZ + "','" + b.strABFALLNAME + "'" +
",'" + b.strRDCODE + "'," + b.strMENGE_KG + ",'" + b.strUEBERGEBERNR + "'" +
",'" + b.strUEBERGEBER_NAME + "','" + b.strUEBERGEBER_STRASSE + "','" + b.strUEBERGEBER_ORT + "'" +
",'" + b.strUEBERGEBER_PLZ + "','" + b.strUEBERGEBER_STAAT + "','" + b.strUEBERNAHMEDATUM + "'" +
",'" + b.strUEBERNAHME_PLZ + "','" + b.strTRANSPORTART + "','" + b.strBEMERKUNG + "'," + bExportiert + ")";
SqlCommand cmd = new SqlCommand(SqlCmd, conn);
try
{
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
conn.Close();
Datenbanksystem:
Microsoft SQL Server Management Studio Express 9.00.2047.00
hallo chrisbradyat,
du solltest Datenbank-Abfragen IMMER mit ADO.NET Parameter implementieren, dann würdest auch hier das Problem nicht haben. Die schmutzige Lösung ist folgende:
Convert.ToInt16(bExportiert).ToString()
Damit bekommst du für true den Wert 1, für false den Wert 0.
-yellow
Selbst ein Weg von tausend Meilen beginnt mit einem Schritt (chinesisches Sprichwort).
Mein Blog: Yellow's Blog auf sqlgut.de