Laden...

Konvertierung Datentype bool in bit (Sql Server)

Erstellt von chrisbradyat vor 16 Jahren Letzter Beitrag vor 16 Jahren 2.251 Views
C
chrisbradyat Themenstarter:in
26 Beiträge seit 2007
vor 16 Jahren
Konvertierung Datentype bool in bit (Sql Server)

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

476 Beiträge seit 2004
vor 16 Jahren

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

C
chrisbradyat Themenstarter:in
26 Beiträge seit 2007
vor 16 Jahren
Danke

Super, danke funktioniert jetzt einwandfrei.