人気ブログランキング | 話題のタグを見る
(VB.Net)パラメタ使ったSQLで、NULL値を入れる。
ついつい忘れてしまうのでメモ。

SqlParameterを使って、値を入れるときにNullを入れる方法です。

Imports System.Data.SqlClient
 
Public Class TestClass
 
Private Sub DBTest()

 
 
Dim conn As New SqlConnection("DB接続文字列")
 
'StringBuilder使ったほうがStringでつなぐより速いらしい。
Dim strCmd As New System.Text.StringBuilder
strCmd.AppendLine("INSERT INTO tbl")

strCmd.AppendLine(" ( No ,")
strCmd.AppendLine(" Name ) ")
strCmd.AppendLine("VALUES ")

strCmd.AppendLine(" ( @No , ")
strCmd.AppendLine(" @Name ) ")
 
Dim cmd As New SqlCommand(strCmd.ToString(), conn)

 
'パラメータを作成
Dim param As New SqlParameter("@No", SqlDbType.Int, 0)

'ここでNull値をパラメタにセット。
param.Value = "DBNull.Value"
cmd.Parameters.Add(param)

Dim param2 As New SqlParameter("@Name", SqlDbType.NText, 0)
param2.Value = "DBNull.Value"

cmd.Parameters.Add(param2)
'上記で作成しているパラメータは下記のようにインスタンス作成省略も可能。
'cmd.Parameters.Add("@No",SqlDbType.Int)
'cmd.Parameters.Add("@Name",SqlDbType.NText)

 
'DB接続、実行、切断
conn.Open()
cmd.ExecuteNonQuery()
conn.Close()
 

 
End Sub
End Class

上記はパラメタを使ったサンプルですが、みてわかるようにSystem.DBNullクラスの Value プロパティを入れるだけです。

ちなみに、DBNullクラスはシングルトン クラスであり、インスタンスは1つしか存在しないようです。(つまり開発者はこのインスタンスを作成できない。)
シングルトン クラスとなるので、デザインパターンのSingletonパターンの実装のようですね。
デザインパターンはまだまださっぱしなので、勉強しないといけないですな。。。
by jehoshaphat | 2008-08-26 09:50 | .Net開発


<< (ネットワーク)無線LANのM... 32bitアーキテクチャでのメ... >>