VB.NET2015(C#)からSQL Serverにデータを追加する(ADO.NET)
SQLでデータを追加する場合は、INSERT文を使用します。
SqlCommandクラスを作成し、CommandTextにSQL文を指定して、ExecuteNonQuery()を実行します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
'データベースへ追加 Private Sub SqlInsert() Dim command As System.Data.SqlClient.SqlCommand = Con.CreateCommand() '実行するSQLクエリーを指定 command.CommandText = "INSERT INTO FileList (Name,Date,Size) VALUES (@Name,@Date,@Size)" '結果が返ってくるまで待機する秒数 command.CommandTimeout = 30 '変換パラメーターの設定 command.Parameters.Add("@Name", SqlDbType.NVarChar).Value = "名称" command.Parameters.Add("@Date", SqlDbType.DateTime).Value = DateTime.Parse("2018/12/06 12:34:56") command.Parameters.Add("@Size", SqlDbType.BigInt).Value = 1000 ' 指定した SQL コマンドを実行 command.ExecuteNonQuery() command.Dispose() End Sub |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
//データベースへ追加 private void SqlInsert() { System.Data.SqlClient.SqlCommand command = Con.CreateCommand(); //実行するSQLクエリーを指定 command.CommandText = "INSERT INTO FileList (Name,Date,Size) VALUES (@Name,@Date,@Size)"; //結果が返ってくるまで待機する秒数 command.CommandTimeout = 30; //変換パラメーターの設定 command.Parameters.Add("@Name", SqlDbType.NVarChar).Value = "名称"; command.Parameters.Add("@Date", SqlDbType.DateTime).Value = DateTime.Parse("2018/12/06 12:34:56"); command.Parameters.Add("@Size", SqlDbType.BigInt).Value = 1000; //指定した SQL コマンドを実行 command.ExecuteNonQuery(); command.Dispose(); } |
使い方は、
・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インジェクションを防げるらしいです。
ディスカッション
コメント一覧
まだ、コメントがありません