.NETでUNICODE体系の文字列をOracleに更新するには?

解決


初心者です。  2004-05-19 18:44:48  No: 83443  IP: [192.*.*.*]

現在、.NETの標準テキストコントロールを使用して、入力したUNICODE体系の文字をOracleに落とすと、文字化けが発生しており困っています。
恐縮ですが、以下にソースを記載させていたきますので、ご助言いただきたく、宜しくお願いします。

Public p_odbConn As New OleDb.OleDbConnection()
Dim odbcmdSel As New OleDb.OleDbCommand()
        Dim odbredSel As OleDb.OleDbDataReader
        Dim strSQL As String

odbcmdSel.Connection = p_odbConn
            odbcmdSel.CommandText = strSQL
            odbredSel = odbcmdSel.ExecuteReader
            If odbredSel.Read Then
                strSQL = "UPDATE TEST2 " & _
                            "SET S_1='" & Me.txtENAME.Text.Trim & "'," & _
                                "S_2='" & Me.txtJOB.Text.Trim & "'"
End If
            odbredSel.Close()
            odbcmdSel.CommandText = strSQL
            odbcmdSel.ExecuteNonQuery()

編集 削除
ファリンファリン  2004-05-20 10:30:17  No: 83444  IP: [192.*.*.*]

UNICODEから「何」にして文字化けするのかは判りませんが、
その「何」にコードにエンコードすれば良いのではないでしょうか?
下記例では、「Shift_JIS」にエンコードしてます。

Dim objEncoding As Encoding         'エンコーディング
'エンコード種別を取得・設定
objEncoding = objEncoding.GetEncoding("Shift_JIS")
'以降、該当のメソッドを呼び出して変換する
'※ちなみにSomething()っていうメソッドは無いです。あくまで例です。
objEncoding.Something()

※Encodingクラスは  Imports System.Text  が必要です。

編集 削除
魔界の仮面弁士  2004-05-20 11:11:02  No: 83445  IP: [192.*.*.*]

「データベース側の文字コード」と、「クライアントの環境変数で指定された文字コード」が一致しておらず、Shift_JIS変換が行われているのだと思います。Oracleのマニュアルを見て、NLS_LANGの設定等を確認してみてください。

編集 削除
初心者です。  2004-05-24 16:26:50  No: 83446  IP: [192.*.*.*]

ご回答有り難うございます。
ご連絡が遅くなってすみません。
体調不良で倒れてました。
さて、確認したところ、おっしゃるように
クライアントがJA16SJISで
データベースはAL16UTF16でした。
もう一度DB再作成してチャレンジしてみます。
有り難うございました。

編集 削除