- PR -

SqlCommand.Parameters.AddでNullをセットするには?

1
投稿者投稿内容
JBOY
ベテラン
会議室デビュー日: 2003/02/27
投稿数: 72
投稿日時: 2004-11-30 23:36
お世話になります。

現在C#でDBアクセス(SQL SERVER20000)を行うものを作成しているのですが、
SqlCommandクラスのParameters.Add()で
パラーメータにNullをセットしてINSERT、UPDATEを行いたいのですが、
NullをセットするとNullはダメと起こられてしまいます。
コード:

command.Parameters.Add("@param", null);


のような形でやっています。
ちなみにNot Nullの項目ではないです。

どなたか、知恵を貸していただけると幸いです。


[ メッセージ編集済み 編集者: JBOY 編集日時 2004-11-30 23:36 ]
中博俊
ベテラン
会議室デビュー日: 2004/10/17
投稿数: 91
お住まい・勤務地: 大阪市
投稿日時: 2004-11-30 23:37
こんにちは中です。

DBNull.Valueです。

_________________
中博俊 (MSMVP Visual Studio C# Since 2004-)
http://blogs.users.gr.jp/naka/
naka@wankuma.com
VisualStudio2005のすべてのエディションにUnitTestを。投票募集中↓
http://lab.msdn.microsoft.com/ProductFeedback/viewFeedback.aspx?feedbackId=FDBK173

[ メッセージ編集済み 編集者: 中 博俊 編集日時 2004-11-30 23:38 ]
JBOY
ベテラン
会議室デビュー日: 2003/02/27
投稿数: 72
投稿日時: 2004-12-01 12:48
回答ありがとうございます。

早速試してみましたが、
コード:
command.Parameters.Add("@param", param != null ? param : DBNull.Value);
(paramはstring型です。)


だと、stringと方変換ができないといわれます。

ので、
コード:
command.Parameters.Add("@param", param != null ? param : System.Data.SqlTypes.SqlString.Null);


でも
STRING または BINARY データは切り詰められました。
と起こられてしまいます。

ほかにはDateTimeのカラムもあり、そこは
コード:
command.Parameters.Add("@param", param != null ? DateTime.Parse(param) : System.Data.SqlTypes.SqlDateTime.Null);


のようにしています。
Os_
ベテラン
会議室デビュー日: 2003/04/16
投稿数: 77
投稿日時: 2004-12-01 14:55
Osです。

勘違いしているかもしれませんが、
stringの場合、
SqlParameter.Size の指定するとどうなりますか?

1

スキルアップ/キャリアアップ(JOB@IT)