- - PR -
SQLServerのImageデータの更新について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-01-26 13:54
VisualStudio 2005 C#で開発を行っております。
CREATE TABLE TestTBL( Dec01 decimal(12,0), Dte01 datetime, Img01 image, CONSTRAINT PK_TestTBL PRIMARY KEY( Dec01) ) SQLServer上に、上記のようなテーブルを作成し、以下のようなコードでデータの追加を行っております。(コネクションをとる部分は省略して有ります) //変数定義部分 Nullable<decimal> Dec01; Nullable<DateTime> Dte01; byte[] Img01; SqlCommand mySQLCommand = new SqlCommand(); mySQLCommand.Connection = mDbConn; mySQLCommand.Transaction = mDbTran; mySQLCommand.CommandText = "INSERT INTO TestTBL(Dec01,Dte01,Img01) Values("@01","@02","@03")"; mySQLCommand.Parameters.Add( new SqlParameter("@01",(Dec01 == null) ? (object)DBNull.Value : Dec01)); mySQLCommand.Parameters.Add( new SqlParameter("@02",(Dte01 == null) ? (object)DBNull.Value : Dte01)); mySQLCommand.Parameters.Add( new SqlParameter("@03",(Img01 == null) ? (object)DBNull.Value : Img01)); このときに、Dec01、Dte01に関しては、変数の値にnull値が格納されている場合は、 nullで作成されるのですが、Img01がnull値の場合に「オペランド型の不整合: nvarchar はimage と互換性がありません」の例外が発生してしまいます。 null以外の値が格納されている場合は、問題なく作成が行われます。 Img01はイメージデータを格納させるための項目です。 どうやら、Imageについてはnull値の場合、発行するSQL自体から項目を除外しなければ 成らないように見受けられるのですが、何か、これに関する情報をお持ちの方は いらっしゃいませんでしょうか? | ||||
|
投稿日時: 2007-01-26 17:11
とらさん、こんばんは。
パラメータのSQL Server データ型を指定した場合はどうなります?
みたいな感じで。 | ||||
|
投稿日時: 2007-01-26 18:42
きくちゃんさん。
実は、これもやってみて、できなかったように思っていたんですが、 私の勘違いでした。 ご指摘のとおりにやってみたら、うまくいきました。 ありがとう御座いました。 |
1