[seasar-dotnet:2234] Re: 【S2Dao.Net】OracleのNCHARまたはNVRCHAR2の取扱について

kotani.k [E-MAIL ADDRESS DELETED]
2013年 2月 18日 (月) 22:57:00 JST


李さん

小谷です。

S2Dao.NETのupdate処理に渡すEntity内のプロパティのうち、
文字化けが起きているプロパティの型はどのようになっているでしょうか?
(stringであればUnicode用のSystem.DbType.Stringが使用されるはずなのですが。。。)

また、
>②正常に更新するパターン:
>        Dim cmd As New OracleCommand("UPDATE BIKO SET BIKO=:biko
WHERE KEY='07'", conn)
>        cmd.BindByName = True
>        Dim pBiko As New OracleParameter("biko", OracleDbType.NVarchar2)
>        pEmpno.Value = "㎥"
>        cmd.Parameters.Add(pBiko)
>        cmd.ExecuteNonQuery()

四行目の「pEmpno」、というのは「pBiko」の間違い、ですよね?

以上です。


2013年2月15日 9:54 李 い <liyi @ kssinet.co.jp>:
> いつもお世話になります、李と申します。
>
>  Visual Studio 2010
>  VB.Net
>  .NetFramwork 4.0
>  S2Container.NET 1.4.0 RC3
>  ODP.Net 2.112.1.0
> で開発しています。
>
> DB環境は下記となります:
>  DBサーバはWindows Server2008、Oracle11g(11.1.0.7.0)です。
>  NLS_CHARACTERSET:       JA16SJISTILDE
>  NLS_NCHAR_CHARACTERSET: AL16UTF16
>
> テスト用のテーブル定義:
> CREATE TABLE Biko
> (
>         key   NCHAR(10)     NOT NULL,
>         biko  NVARCHAR2(50),
>         CONSTRAINT Biko_PK PRIMARY KEY (key) USING INDEX
> )
> ※備考にUnicodeも入力するため、NVRCHAR2を採用します。
>
>
>  現象:
> DBの既存レコードから読み込みの場合、Unicode文字が正しく読み込まれ、画面に表示できます。
> しかし、画面で入力されたUnicode文字をDBに更新する時、「?」に化けてしまいました。
>
>
>  調査:(S2Dao.Netを利用せず、ODP.Netでサンプルを作って調査する)
> 【ソースの抜粋】
> ①「?」に化けるパターン:
>         Dim cmd As New OracleCommand("UPDATE BIKO SET BIKO=:biko WHERE KEY='07'", conn)
>         cmd.BindByName = True
>         cmd.Parameters.Add("biko", "㎥")
>         cmd.ExecuteNonQuery()
> ②正常に更新するパターン:
>         Dim cmd As New OracleCommand("UPDATE BIKO SET BIKO=:biko WHERE KEY='07'", conn)
>         cmd.BindByName = True
>         Dim pBiko As New OracleParameter("biko", OracleDbType.NVarchar2)
>         pEmpno.Value = "㎥"
>         cmd.Parameters.Add(pBiko)
>         cmd.ExecuteNonQuery()
>
>  調査結果:パラメータバンティングの時、カラムのタイプを指定しなければ、文字化けが発生します。
>
>
>  質問:
> S2Dao.Netで、パラメータバンティングの時、カラムのタイプを指定できる方法がありませんか?
>
>
> よろしくお願いします。
> _______________________________________________
> seasar-dotnet mailing list
> seasar-dotnet @ ml.seasar.org
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet


seasar-dotnet メーリングリストの案内