DOBON.NET DOBON.NETプログラミング掲示板過去ログ

SQL Server2000をDBとして処理したい

環境/言語:[Windows2000 VB.NET]
分類:[.NET]

SQL2000をデータベースとしてVB.NETで開発しています。
データベースへの接続と検索は出来るようになったのですが、
データレコードの追加、各レコードのデータの修正の仕方がわかりません。
ちなみに接続と検索処理を記述しました。
是非是非、よろしくお願い致します。


'----------------------------------------------
' SQL Server接続用定義
'----------------------------------------------
Public Structure DB_Data
Public cn As SqlClient.SqlConnection
Public cmd As SqlClient.SqlCommand
Public dr As SqlClient.SqlDataReader
End Structure
Public DB As DB_Data

'----------------------------------------------
' データベース接続
'----------------------------------------------
Public Sub DB_データベース接続処理()

DB.cn = New SqlClient.SqlConnection()
DB.cmd = New SqlClient.SqlCommand()

'Windows NT認証を利用する場合は以下の文字列を使用
DB.cn.ConnectionString = "Data Source=(local);InitialCatalog=データベース名;IntegratedSecurity=SSPI;"

'接続を確立する
DB.cn.Open()

'接続済みの Connection を指定する
DB.cmd.Connection = DB.cn

End Sub

'----------------------------------------------
' データ検索
'----------------------------------------------
Public Sub 顧客テーブル_検索処理()

'全レコード取得
DB.cmd.CommandText = "SELECT * FROM 顧客"
DB.dr = DB.cmd.ExecuteReader

'データの処理

'テーブルのクローズ
DB.dr.Close()

End sub
■No4008に返信(まるこさんの記事)
> SQL2000をデータベースとしてVB.NETで開発しています。
> データベースへの接続と検索は出来るようになったのですが、
> データレコードの追加、各レコードのデータの修正の仕方がわかりません。

  http://www.atmarkit.co.jp/fdotnet/basics/adonet_index/index.html

  ここが参考になるのでは。

  ご検討下さい。

以上。
参考になりました。ありがとうございました。
更新する事が出来たのですが、下記の様なプログラミングで支障はありませんか?
for文の中に Dimが入っているのが気になるのですが、
他にやり方がわかりません。
よろしくお願い致します。

このプログラムはTABLE1のフィールド名(No)に1〜10の数値を入れています。

Dim i As Integer
Dim cn = New SqlClient.SqlConnection("Data Source=(local);Initial Catalog=テーブル名;Integrated Security=SSPI;")

cn.Open()

For i = 1 To 10
Dim cmd = New SqlClient.SqlCommand("INSERT INTO TABLE1(No) " _
"VALUES ('" & i & "')", cn)
Dim num = cmd.ExecuteNonQuery()
Next i
cn.Close()
前の書き込みでわかりずらいかと思い、補足します。
今ひとつ、Newをつけるのと、つけないのとの違いがわかりません。

分からない事は、ループ内で
Dim cmd = New SqlClient.SqlCommand("INSERT INTO ・・・・・・・", cn)
Dim num = cmd.ExecuteNonQuery()
と言うような、DimやNew宣言をしていいのかと言う事です。
よろしくご教授願います。
■No4026に返信(まるこさんの記事)
> 前の書き込みでわかりずらいかと思い、補足します。
> 今ひとつ、Newをつけるのと、つけないのとの違いがわかりません。
>
> 分からない事は、ループ内で
> Dim cmd = New SqlClient.SqlCommand("INSERT INTO ・・・・・・・", cn)
> Dim num = cmd.ExecuteNonQuery()
> と言うような、DimやNew宣言をしていいのかと言う事です。
> よろしくご教授願います。

Dim は型の宣言、
New はオブジェクトの作成と考えればいいのではないでしょうか?

ループ内で型の宣言とオブジェクトの作成をする必要は無いですので、
Dimは、ループの上で1回おこなって、
Newは、その都度行えばOKです。
それと、insertや、UpDateを行う際には、
トランザクション(コミット、ロールバック)
のタイミングに気をつけたほうが良いですよ。
ちなみに・・・

SqlClient.SqlDataAdapter
を使えば、もう少し簡単に処理が出来ると思います。

時間があるときにでも調べて見るといいかも知れませんね。
ありがとうございました。
もっと勉強して頑張ります。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板