Insert Class - kura2391/vbsql GitHub Wiki

簡単な例

'conn ... VbSql.Connection クラス
Dim ins As New Vbsql.Insert(conn)

'INSERT INTO test(text) VALUES('insert test')
ins.into("test")
ins.value("text","insert test")
insert.execute()
  • value句では、第一引数に列名、第二引数にその値を入れます。
    • NULLを挿入したい場合、第二引数にDBNull.Valueを入れます。
  • ほかの句はexecute()の前に記述します。

value(values)句

value句は3通りの書き方があります。

その1

'conn ... VbSql.Connection クラス
Dim ins As New Vbsql.Insert(conn)

'INSERT INTO test(text,number) VALUES('ins',990)
ins.into("test")
ins.value("text","insert test")
ins.value("number","990")
insert.execute()
  • 第一引数に列名、第二引数にその値を入れます。

その2

'conn ... VbSql.Connection クラス
Dim ins As New Vbsql.Insert(conn)

'INSERT INTO test(text,number) VALUES('ins',NULL)
ins.into("test")
dim ht as new Hashtable()
ht("text") = "insert test"
ht("number") = DBNull.Value
ins.value(ht)
insert.execute()
  • Hashtableを作成し、要素名とその中身を、列名とその内容に対応させます。
  • NULLを入れたい場合、DBNull.Valueを入れます。

その3

'conn ... VbSql.Connection クラス
Dim ins As New Vbsql.Insert(conn)

'INSERT INTO test(text,number) VALUES
'('ins',990),
'('ins',1000),
'('ins',1010)

ins.into("test")

dim dt as new Datatable()
dt.Columns.Add("text")
dt.Columns.Add("number")
For i as Integer = 0 to 2
  Dim row as DataRow = dt.NewRow()
  row("text") = "ins"
  row("number") = 990 + i * 10
  dt.rows.add(row)
Next

ins.values(dt)
insert.execute()
  • 複数行を同時にInsertしたい場合に有効です。
  • 「values」です。「s」を忘れないでください
  • DataTableにデータを入力していきます。
  • NULLを入れたい場合、DBNull.Valueを入れてください

SELECT SCOPE_IDENTITY()

lastInsertId()とも言われます

'conn ... VbSql.Connection クラス
Dim ins As New Vbsql.Insert(conn)

'INSERT INTO test(text) VALUES('insert test');SELECT SCOPE_IDENTITY();
ins.into("test")
ins.value("text","insert test")
ins.lastInsertId()
Dim id as integer = insert.execute()
  • lastInsertId()を入れることで、insertした行の、自動採番の値が返ってきます。