- - PR -
テーブルの読込み更新ロジック
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-03-16 16:27
AccessのEOFや新規追加(addnew)、更新(edit)は、VB.NETではどのように記述するのでしょうか?
やりたいことは、SQLのテーブルを読んで、無かった場合は新規、存在する場合は、更新 を 行いたいのです。 また、何か参考になるものがあればお願いします。 ↓Access97です。今度AccessからVB.NETでの開発になりました。 Dim WS As Workspace, db As Database Dim WK_REC1 As Recordset Dim s_sql As String Set WS = DBEngine.Workspaces(0) Set db = WS.Databases(0) s_sql = "SELECT * FROM uriagetbl WHERE (cd = '0015')" Set WK_REC1 = db.OpenRecordset(s_sql, DB_OPEN_DYNASET) If WK_REC1.EOF Then WK_REC1.AddNew ・・・・・ WK_REC1.Update Else WK_REC1.Edit ・・・・・ WK_REC1.Update End If 【↓VB.NET この先が?です】 Dim myConn As System.Data.SqlClient.SqlConnection Dim s_sql As String Dim myCommand As System.Data.SqlClient.SqlCommand Dim myReader As System.Data.SqlClient.SqlDataReader Try myConn = New System.Data.SqlClient.SqlConnection( _ "server=DBdata;database=testtable;" & _ "uid=sa;pwd=password") myConn.Open() Catch ex0 As Exception Response.Write("**err**" & ex0.Message & ex0.ToString) End Try Try s_sql = "SELECT * FROM uriagetbl WHERE (uriday = '2004/03/15') " myCommand = New System.Data.SqlClient.SqlCommand(s_sql) myCommand.Connection = myConn myReader = myCommand.ExecuteReader() if myreader.??????????? | ||||
|
投稿日時: 2004-03-16 17:09
読み取りサンプル
(MSDNのキーワードタブで、キーワードに「sqldatareader」を入力、一覧から「サンプル」を選択、表示されたページをCTRL+Fで「sqldatareader」を検索) http://ja.gotdotnet.com/quickstart/util/srcview.aspx?path=%2fquickstart%2fhowto%2fsamples%2fadoplus%2fsqldtreader%2fsqldtreader.src 更新か、挿入かは、同じようにIF文で分けます。MSDNの方に、やはりサンプルがありますから、参考にしてください。 | ||||
|
投稿日時: 2004-03-16 17:33
ichiroさん、こんにちは。
結果の有無(EOF)に該当するものとしては、取り敢えず、SqlDataReader の Read() メソッドについて調べてみて下さい。 また、SqlDataReader は dbForwardOnly + dbReadOnly を指定して開いた RecordSet のようなものなので、追加や更新、削除は出来ません。SQLで処理します。 更新可能な RecordSet ...に近い物としては データセット というものがありますので、MSDNライブラリの「Visual Basic および Visual C# の概念」-「Visual Studio .NET におけるデータセットの更新」あたりを参照してみて下さい。 | ||||
|
投稿日時: 2004-03-16 18:20
Jittaさん、きくさん、お世話さまです。
引用:------------ 読み取りサンプル (MSDNのキーワードタブで、キーワードに「sqldatareader」を入力、一覧から「サンプ ル」を選択、表示されたページをCTRL+Fで「sqldatareader」を検索) -------------- キーワードに「sqldatareader」を入力、一覧から「サンプル」が見つかりませんでした。 引用:------------ 結果の有無(EOF)に該当するものとしては、取り敢えず、SqlDataReader の Read() メソ ッドについて調べてみて下さい。 また、SqlDataReader は dbForwardOnly + dbReadOnly を指定して開いた RecordSet のようなものなので、追加や更新、削除は出来ません。SQLで処理します。 更新可能な RecordSet ...に近い物としては データセット というものがありますので、 MSDNライブラリの「Visual Basic および Visual C# の概念」-「Visual Studio .NET におけるデータセットの更新」あたりを参照してみて下さい。 -------------- ご指摘の箇所調べてみたのですが、ん〜ん、いまいち良くわかりません。 MSDNライブラリの「Visual Basic および Visual C# の概念」-「Visual Studio .NET におけるデータセットの更新」あたりも 見つけるもとができず。。。 追加や更新、削除はSQL文で一発だと思うのですが、その方法もわからないでいます。 まだまだ勉強不足です。 ↓AccessのときはこれでOKだったんですが。 DoCmd.RunSQL "DELETE xxxtbl.* FROM xxxtbl " | ||||
|
投稿日時: 2004-03-16 18:32
すみません、きくさんの
MSDNライブラリの「Visual Basic および Visual C# の概念」-「Visual Studio .NET におけるデータセットの更新」あたりも は、見つけることができました。 が、結局どうすればよいのか、?です。 | ||||
|
投稿日時: 2004-03-17 08:48
??検索するのに、「キーワード」と「検索」というタブがあるのですが、どちらで検索しました?私は「キーワード」の方です。「フィルタ条件」が「なし」または「.NET Framework」以外になっていると、出てこない可能性があります。「キーワード」タブの「検索する文字列」に、「sqldatareader」と入れると、下のリストボックスに、 >>>>> SqlDataReader クラス SqlDataReader クラスについて サンプル すべてのメンバ プロパティ ・・・ <<<<< と、出てくると思うのですが・・・って、WebのMSDNではなく、「Microsoft Visual Studio .NET ドキュメント」のことを、「MSDN」と言っています。WebのMSDN Liblaryは、このドキュメントとほぼ同一内容です。ドキュメントにリンクを張るときは、「Microsoft〜ドキュメント」の方はインストール環境によってURIが一定しないため、WebのMSDNの方で同じトピックを探してリンクしています(私の場合)。 脱線: > きくさん ん〜、実は、ずっと聞きたくて、聞けなかったこと^^;。「きくちゃんさん」とするべきか、「きくさん」とするのか、はたまた「ちゃん」がついているので「きくちゃん」でいいのか? [ メッセージ編集済み 編集者: Jitta 編集日時 2004-03-17 08:49 ] | ||||
|
投稿日時: 2004-03-17 10:27
ichiroさん、お早うございます。
DAOとかRDOとかADODBあたりから移行する場合、結構とまどうかも知れません。 MSDNライブラリで「System.Data.SqlClient 名前空間」の各クラス、プロパティ、メソッドについて、一通り目を通して、それぞれのトピックにある使用例等を参考にしながら一つ一つ理解していくしかないと思います。 ちなみに、SQL文の実行については、SqlCommand の Execute〜 で始まるメソッドで行います。 | ||||
|
投稿日時: 2004-03-17 10:46
Jittaさん、お早うございます。
いや、もう、お好きなように。(^^; 「きく公」でも「きくやん」でも「きく坊」でも「おきくどん」でも...。 # 多重敬称(笑)もアレですけど、さん付けすると収まりが良すぎて何となく笑えるハンドルの方もいますね。 |
1