Announcement

Collapse
No announcement yet.

Warum werden keine unicode Zeichen in die Datenbank geschrieben?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Warum werden keine unicode Zeichen in die Datenbank geschrieben?

    Ich schreibe über einen ODBC Datenverbindung mit dem Connection-String

    "Server=w2k-andreas\WEBfactory;Database=WEBfactory;User ID=sa;Password=xyz"

    Hier ist die Funktion:
    <PRE>
    //************************************************** *******
    // geänderten Datensatz in Datanbankk schreiben
    void DataGrid1_UpdateCommand(Object sender ,
    DataGridCommandEventArgs e)
    {
    // *******************
    // geänderten Inhalt ermitteln
    TextBox txtText = (TextBox) e.Item.Cells[2].Controls[0];
    string strText = txtText.Text;

    // *******************
    // TextId ermitteln
    // über e.Item.Cells[0].Text
    string strTextId = e.Item.Cells[0].Text;

    // *******************
    // Sprach Id ermitteln
    string strLang2=ctrlLang2.Value;
    string strLangId = GetLangId(strLang2);

    // *******************
    // SQL String zusammensetzen
    string strSql = "Update AlarmTexts SET AlarmText='" +
    strText + "' WHERE LanguageID='" + strLangId +
    "' AND AlarmId='" + strTextId + "'";

    // *******************
    // Daten in DB einfügen
    SqlConnection mySqlConnection = new SqlConnection
    (strConnect);

    SqlCommand mySqlCommand = new SqlCommand( strSql,
    mySqlConnection);

    try
    {
    mySqlConnection.Open();
    mySqlCommand.ExecuteNonQuery();
    }
    catch(Exception objError)
    {
    spanFehler.InnerHtml = "Fehler beim Zugriff auf die
    Datenbank: " + objError.Message + " Source " +
    objError.Source + " SQL-String: " + strSql;
    }
    finally
    {
    mySqlConnection.Close();
    spanAusgabe.InnerHtml = "Datensatz erfolgreich
    geändert.";
    }

    // ********************
    // Editiermodus beenden und neu laden
    DataGrid1.EditItemIndex = -1;
    FillDataGrid2();
    spanAusgabe.InnerHtml = strSql;
    }

    </PRE&gt

  • #2
    Warum werden keine unicode Zeichen in die Datenbank geschrieben?

    Ich habe eine ASP.NET Webseite geschrieben, die ein Datagrid mit
    Alarmtexten anzeigen soll. Alarme können in verschieden Sprachen(dt.,
    engl., chinesisch, japanisch) eingegeben werden.

    Wenn ich einen Text ändere (chin. Zeichen eingebe) werden die auch in
    meiner Kontrollausgabe so angezeigt. Wenn ich über den SQL Enterprise Manager
    die DB öffne, stehen für die Zeichen "?". Wenn ich über den
    Enterprise Manager Zeichen eingebe, werden die im Datagrid auch so angezeigt.

    Der Weg bis zum SQL-Update String und die Ausgabe aus der DB funktioniert.
    Wie ereiche ich, daß unicode-Zeichen auch wirklich abgespeichert werden?
    Normalerweise benutze ich die MSDE2000, benötige ich eine multilingual Version?

    Comment


    • #3
      Hallo,

      welcher Datentyp wird in der MS SQL Server-Tabelle verwendet? Was bedeutet "..und die Ausgabe aus der DB funktioniert"? Geht es nur darum, dass der Enterprise Manager die "fremdländischen" Zeichen nicht korrekt anzeigt

      Comment


      • #4
        Wenn ich einen russischen Text in der Datenbank habe, wird dieser richtig angezeigt.
        Ich kann mit dem Enterprise Manager russischen Text eingeben und ansehen.

        Das Problem is, daß für russischen Text, welchen ich in die Editbox des DataGrid eingebe (und sehe), nur "?" im Enterprise Manager (und anderen DB-Tools) erscheinen.
        Wenn ich mir des SQL String anzeigen lasse, stehen da russische Zeichen drin.
        Das Problem ist also meiner Meinung nach das Schreiben in die Datenbank

        Comment


        • #5
          Hallo Andreas,

          über welchen Weg werden die Daten in die DB geschrieben. Evtl. über einen ODBC-Eintrag

          Comment


          • #6
            Stelle die Verbindung von einer ODBC-Verbindung auf eine "native" Verbindung zum MS-SQL-Server her.

            AFAIK ist eine Verbindung über ODBC-Verbindung nicht Unicode-Fähig

            Comment

            Working...
            X