VB.NET2015(C#)からSQL Serverにデータを追加する(ADO.NET)

2020年5月9日

SQLでデータを追加する場合は、INSERT文を使用します。
SqlCommandクラスを作成し、CommandTextにSQL文を指定して、ExecuteNonQuery()を実行します。

使い方は、
・Dim command As System.Data.SqlClient.SqlCommand = Con.CreateCommand()
 にて、グローバル変数のconからSqlCommandクラスを作ります。
・command.CommandText =
 ”INSERT INTO FileList (Name,Date,Size) VALUES (@Name,@Date,@Size)”
 にて、実行するSQL文を指定します。ここでポイントはVALUESの中身です。
 @名称とすることで、パラメータ変数とすることができます。
・command.Parameters.Add(“@Name”, SqlDbType.NVarChar).Value = “名称”
 パラメータ変数に値をセットするために、Parameters.Addを行います。
 Addの引数は、パラメータ名、データ型(SqlDbType)を指定し、
 .Valueに値を代入するだけです。

少し面倒ですが、省略しないとこんな感じで書くのが正解らしい。
 Dim param As System.Data.SqlClient.SqlParameter
 param = command.CreateParameter()
 param.Direction = ParameterDirection.Input
 param.ParameterName = “@Name”
 param.SqlDbType = SqlDbType.NVarChar
 param.Value = “名称”
 command.Parameters.Add(param)

SQL文に値を書き込まず、この様にパラメータ変数を介すことで、SQLインジェクションを防げるらしいです。