- - PR -
中国語文字列のインサート
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-01-13 18:01
はじめまして、kt76zzと申します。
パラメータオブジェクトを使用してDB(Oracle)にデータをインサートしようとしています。 テキストボックスに入力された中国語の文字列をインサートしようとすると 署名の不一致またはデータ オーバーフロー以外の理由により、 コマンド引数 [0] 'TEST1' データ値を変換できませんでした。 というエラーが発生し、インサートできません。 日本語のデータはエラーもなくインサートできます。 中国語の文字列はYahooの中国のサイト(http://cn.yahoo.com/)から コピー&ペーストして、テキストボックスに入力しています。 また、中国語のフォントをインストールし、テキストボックスのFONTプロパティを 中国語(MS Song)に設定して中国語を表示できるようにしています。 同じプログラムで日本語の文字列はエラーもなくインサートすることができます。 中国語をインサートする際に必要な手段などあるのでしょうか。 御存知の方がおられましたらご教授くださるようお願いします。 以下インサート部分のコードです。 Try Dim MyDataAdapter As New OleDbDataAdapter(strSELECT, MyConnection) MyDataAdapter.Fill(MyDataSet, "MyTable") Dim MyCommand As New OleDbCommand(strSQL, MyConnection) Dim MyParameterCollection As OleDbParameterCollection = MyCommand.Parameters Dim MyParameter As OleDbParameter MyParameter = MyParameterCollection.Add("TEST1", OleDbType.VarChar, 0, "TEST1") MyDataAdapter.InsertCommand = MyCommand Dim MyDataRow As DataRow MyDataRow = MyDataSet.Tables("MyTable").NewRow MyDataRow.Item("TEST1") = Trim(frmMain.txtTEST1.Text) MyDataSet.Tables("MyTable").Rows.Add(MyDataRow) MyDataAdapter.Update(MyDataSet, "MyTable") MessageBox.Show("INSERT OK") Catch ex As Exception MessageBox.Show("INSERT ERROR" & Chr(13) & ex.Message) End Try |
|
投稿日時: 2004-01-13 18:16
外国語フォントを使用して
プログラム等作成したことが無いので まったくお力になれませんが そもそもその中国語の混じった SQL文自体はDBになげて通っていますか? それ自体が通っていなければ駄目ですし それが通っていれば何か他に必要なのでしょうね 回答で無く、興味本位の質問返しになってますが お許しください |
|
投稿日時: 2004-01-13 19:15
PoHさん 書込ありがとうございます。
>そもそもその中国語の混じった >SQL文自体はDBになげて通っていますか? はい、中国語データを含むSQL文は 実行可能です(DBを多国語対応にしています)。 |
|
投稿日時: 2004-01-14 10:09
>はい、中国語データを含むSQL文は
>実行可能です(DBを多国語対応にしています)。 そうですか・・・ 私もUNIXでですがNLS_LANGを変更して データベースの文字コードも変えて、と試して見ましたが 普通にSelect文に簡体字中国語(GB2312)みたいなのが 入ってきてもDBの方はいけるようですね。 表示も出来てるしSQL文は通る そうなってくるとデータセットに なにか多国語関連の設定があるのでしょうかね? お力になれず申し訳ないです |
|
投稿日時: 2004-10-22 14:32
>そもそもその中国語の混じった
>SQL文自体はDBになげて通っていますか? はい、中国語データを含むSQL文は 実行可能です(DBを多国語対応にしています)。 同じような質問でしみませんが InsertのSQL文も通っているということでしょうか? 以前、英語環境でどうしても日本語のコメントをDBに残しておきたい時 SQL文で日本語の項目に対して JapaneseComment = N'" & JapaneseComment.text & "'," でうまくいきましたが・・・。 ぜんぜん的をはずしていたらすみません。 |
|
投稿日時: 2004-10-22 15:37
なんとなくですが
MyParameter = MyParameterCollection.Add("TEST1", OleDbType.VarChar, 0, "TEST1") を MyParameter = MyParameterCollection.Add("TEST1", OleDbType.VarWChar, 0, "TEST1") と OleDbType.VarWChar でいかないでしょうか? [ メッセージ編集済み 編集者: NYRL 編集日時 2004-10-22 15:38 ] |
1