Visual Basic 2008 を使用しています。(初心者です)
ODP.NETにてデータセットし、
オラクルのテーブルを読み込む事は可能なのですが、
データセットに更新して、
オラクルのテーブルレコードを更新する方法がわかりません。
【】内にソースを記載して頂ければ幸いです。
ご伝授願いたく宜しくお願い致します。
例)
オラクルテーブル名= 社員マスター
フィールド= 社員番号、社員名
Imports Oracle.DataAccess.Client
Imports Oracle.DataAccess.Types
Dim cnn As New OracleConnection
Dim cmd As New OracleCommand
Dim dsList As New DataSet
Dim adp As New OracleDataAdapter(cmd)
cnn.ConnectionString = "user id=ITS;password=ITS;data source=ITS"
cmd.Connection = cnn
'社員番号 777 がオラクルテーブルにあるか
cmd.CommandText = "Select * from 社員マスター WHERE 社員番号 = 777 "
adp.Fill(dsList, "EMPMSTR")
'DataSetの件数が0なら
If dsList.Tables("EMPMSTR").Rows.Count = 0 Then
【ここに記載すると思いますが、
社員番号=777 社員名=太郎 をデータセットとオラクルテーブルに追加するソースをお願い致します。】
else'社員番号 777 がある場合。
【ここに記載すると思いますが、
社員番号=777 の 社員名を 太郎 に変更し、データセットとオラクルテーブルを更新するソースをお願い致します。】
end if
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
>>sSQL は何を入れればよいのでしょうか?
DIM Ssql AS STRING ="INSERT INTO 社員マスター(社員番号,社員名) VALUES(777,'太郎')
"
更新したい 、sql分を入れればいいです
>>ORA_TRN で 変数 'ORA_TRN' は、それを囲むブロック内の変数を非表示にします。 とエラーになり、
意味がわかりません??
環境はVisual Basic 2008 なら
Usingが使えるはずですが・・・・
>又、データセットに更新する方法が分かりません。
何がしたいのかがわかりません
データセットの内容を更新したいのか?
sqlの結果を取得したいのか?
どんなことをやりたいのかを明確にしてもらえれば
いろいろと答えられると思うのですが・
No.4
- 回答日時:
はじめのSELECTで open はしてるのかと思いました。
Using ORA_CN As New OracleConnection
''ORACLE接続文字列 set
ORA_CN.ConnectionString = "user id=ITS;password=ITS;data source=ITS"
'/* 接続開始
ORA_CN.Open()
If ORA_CN.State = ConnectionState.Open Then
'/* トランザクション開始
Dim ORA_TRN As OracleTransaction = ORA_CN.BeginTransaction
Using ORA_CMD As New OracleCommand
ORA_CMD.Connection = ORA_CN
ORA_CMD.CommandText = sSQL
Try
lret = ORA_CMD.ExecuteNonQuery()
ORA_TRN.Commit()
Catch ex As Exception
MsgBox(ex.Message)
ORA_TRN.Rollback()
lret = -1
End Try
'/* 開放
ORA_CMD.Dispose()
End Using
End If
If ORA_CN.State = ConnectionState.Open Then ORA_CN.Close()
'/* 開放
ORA_CN.Dispose()
End Using
でどうでしょう?
この回答への補足
返答有難う御座いました。
連絡が遅くなり申し訳ありません。
分からないためそっくりソースをコピペしましたが、
ORA_TRN で 変数 'ORA_TRN' は、それを囲むブロック内の変数を非表示にします。 とエラーになり、
sSQL は何を入れればよいのでしょうか?
又、データセットに更新する方法が分かりません。
ご伝授の程、宜しくお願い致します。
No.3
- 回答日時:
こんな感じですかね?
vb2008なら Using 使ったほうがいいかと
'/* トランザクション開始
Dim ORA_TRN As OracleTransaction = cnn.BeginTransaction
dim lret as long
CMD.CommandText = "INSERT INTO 社員マスター(社員番号,社員名) VALUES(777,'太郎')
"
Try
lret = CMD.ExecuteNonQuery()
ORA_TRN.Commit()
Catch ex As Exception
ORA_TRN.Rollback()
lret = -1
End Try
この回答への補足
ご返答有難う御座いました
早速、試してみましたが、
ORA_TRN As OracleTransaction = cnn.BeginTransaction
の所で、エラーとして
【この操作用に接続がオープンしている必要があります。】
と来ました。
何が悪いのかが分からない為、ご伝授願います。
No.2
- 回答日時:
MSDNのドキュメントを参考にしたらいかがでしょう。
http://msdn.microsoft.com/ja-jp/library/system.d …
http://msdn.microsoft.com/ja-jp/library/ss7fbaez …
ここにある関連ページも参考になります。
この回答への補足
ご返答有難う御座います。
参考URLは結構見たのですが、初心者の為、わからず、
実際にソースを書いて頂ければ、把握できるかと思い、投書しました。
できれば、ソースを書いて頂ければ幸いです。
No.1
- 回答日時:
cmd.ExecuteOracleNonQuery を使ってINSERT文かUPDATE文を実行すれば
良いのでは?
INSERT INTO 社員マスター(社員番号,社員名) VALUES(777,'太郎')
UPDATE 社員マスター SET 社員名='太郎' WHERE 社員番号=777
この回答への補足
ご返答有難う御座いました。
ExecuteOracleNonQuery を入力すると
'Oracle.DataAccess.Client.OracleCommand' のメンバではありません。 とエラーになってしまいます。
初心者なもので、出来れば具体的に構文を教えて頂きたく、
又、データセットに更新する方法も教えて頂きたく、宜しくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 先ほど、回答者様によって教えていただいたのですがどうしたらいいか分かりません。 ユーザーフォーム上に 2 2023/02/21 22:25
- Visual Basic(VBA) Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる 3 2022/12/21 09:07
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Oracle update文で質問です。 下記の条件でupdateをしたいですが、どのようにしたら良いでしょうか。 2 2022/06/23 10:51
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Visual Basic(VBA) 2つのシートの任意のセルの番号が一致したら、一致した行をコピーする VBA 2 2023/06/19 20:48
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- C言語・C++・C# c言語の問題です 2 2023/07/21 10:51
- Oracle 下記のsqlで取得されるレコード以外を取得する方法ありますでしょうか。 SELECT B.番号, B 2 2022/04/20 23:21
- Oracle sqlで質問です。 Aテーブルの情報をBテーブルに更新かけたいです。 やりたいことは、Bテーブルの受 1 2023/05/17 11:17
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessで別mdbのテーブルをコピー
-
access2007 「#Deleted」
-
VBとアクセスでSQL文に変...
-
CSVファイルのエクスポートでソ...
-
DataGridViewに複数テーブルの...
-
.net 複数の主キーを設定する方法
-
ダイナセットタイプのレコード...
-
AccessVBAコミットとロールバッ...
-
ワークテーブルの作成について
-
COBOLのINVALID KEYが理解でき...
-
任意の周波数の正弦波(サイン...
-
Access VBA について質問があ...
-
VB.NET データセットのEXCELへ出力
-
AccessからExcelへエクスポート...
-
二重引用符(")について
-
同一セッションIDのブラウザを...
-
ADO&mdbで、リンクテーブルの...
-
『列名 '担当者CD' があいま...
-
エクセルのテーブルを解除する...
-
MDBテーブルへの追加変更を教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBとアクセスでSQL文に変...
-
Accessで別mdbのテーブルをコピー
-
『列名 '担当者CD' があいま...
-
CSVファイルのエクスポートでソ...
-
AccessからExcelへエクスポート...
-
エクセルのテーブルを解除する...
-
手動または分散トランザクショ...
-
他のMDBのテーブルに追加したい
-
HTMLのテーブルの行数が多くな...
-
SQLを発行とは?クエリの作成と...
-
WORD VBA プログラム修正をお願...
-
ACCESS2010 実行時エラー 2766
-
Excel複数シートをaccessへ一括...
-
ACCESSのテーブル名をリストに...
-
アクセステーブル、リンクとロ...
-
.net 複数の主キーを設定する方法
-
MDBテーブルへの追加変更を教え...
-
Accessで宛名ラベルに同一宛先...
-
DataGridの中身をDataSetにテー...
-
COBOLのINVALID KEYが理解でき...
おすすめ情報