VB2005 Express Editionを使用しています。レコードの追加を以下のように行っておりますが、追加されません。プログラミングの世界に入ったばかりでどこが違うのか全く分かりません。ご教授ください。また、参考になるサイトがあれば教えてください。
Dim Cn As New SqlConnection
Cn.ConnectionString = "Data Source=.\SQLEXPRESS;AttachDbFilename" &
"=|DataDirectory|\Database1.mdf;Integrated Security=True;" &
"User Instance=True"
Dim cmd As New SqlCommand
cmd.Connection = Cn
cmd.CommandText = "INSERT INTO USER_ID (ユーザー名, パスワード) VALUES ('AAA', 'XXX')"
Cn.Open()
cmd.ExecuteNonQuery()
Cn.Close()
No.3ベストアンサー
- 回答日時:
>Database1.mdfとformが同じ階層にあります。
そうですか、しまった。ASP.NETではなくて、Windowsアプリだったですね。すみません。
Windowsアプリの場合、開発環境で実行すると、一旦モジュールがコンパイルされて、bin/Debugというフォルダに入ります。
そのときにデータベースのmdfファイルもそこにコピーされます。
|DataDirectory|で指定されるフォルダがbin/Debugになっているので、実際には更新は正常に行われていて、bin/Debugの下にあるコピーされた方のmdfファイルに更新がかかっている、ということですね。
(Windowsアプリ開発では基本だったかもしれませんが、私もあまりやらないので、気づきませんでした)。
とりあえず、bin/Debugのフォルダのmdfをチェックしてみてください。
jamshid6さん確認が遅れ申し訳ありません。
まだ、bin/Debugのフォルダのmdfの確認は行っていませんが、大変参考になりました。今回の事例はやっぱり基本的なことなのでしょうか?(開発を行う者にとっては当然のことなのでしょうか?)
また、上記のような事はどのようにして学べばよいのでしょうか?仕事はサービス業を行っていますので、周囲に詳しい方もいないので相談が出来ない状況です。
No.4
- 回答日時:
>今回の事例はやっぱり基本的なことなのでしょうか?(開発を行う者にとっては当然のことなのでしょうか?)
おそらく、.NETでWindowsアプリを開発する人には基本的なことでしょうね。でも、焦ることはないと思います。私もアプリ開発は専門ではなくて、普段はASP.NET(Web)の方でしか書かないから最初気付かなかったわけですからね。
質問者さんがSQL Serverに投稿されましたので、たまたま私が拾いましたが、プログラミングカテゴリに投稿していれば一発で回答がついたかもしれません。今回の件も、データベースがエラーメッセージなしで更新もされないという事象はありえないという認識のもと、ExecuteNonQueryのところの変数をチェックして気づいたというのが正直なところです。使っていないとわからない、そんなものです。
>また、上記のような事はどのようにして学べばよいのでしょうか?仕事はサービス業を行っていますので、周囲に詳しい方もいないので相談が出来ない状況です。
本業でなく.NETで書かれているとすれば大したものだと思います。
.NETは深く理解しなくても動くものが作れてしまうので、結果的に基本的なことで見落としてしまうことがあるというだけです。
独学で作り始めたのであれば、一通り作れるようになったと思ったところで、データベースを使った基本的なプログラミング解説書を読んでみると、自分が見落としていることがかなり書かれていることに気付くはずです。あとはそういう本やWebに載っているサンプルコードをできるだけ見てみることをお勧めしておきます。王道はありません。頑張ってください。
jamshid6さん有難うございます。
>独学で作り始めたのであれば、一通り作れるようになったと思ったところで、データベースを使った基本的なプログラミング解説書を読んでみると、自分が見落としていることがかなり書かれていることに気付くはずです。あとはそういう本やWebに載っているサンプルコードをできるだけ見てみることをお勧めしておきます。王道はありません。頑張ってください。
やはり、たくさんのサンプルコードを見たりして、知識を深めていく事が大切なんですね。動作が正常に行われるという結果までは多くの記述方法があり、的確に判断しなくてはいけないということが分かりました。大変参考になりました、有難うございます。
No.2
- 回答日時:
ソースを見る限りはASP.NETですよね。
実際に試してみましたが、残念ながら何のエラーも返らず、INSERTもされないという状況を作ることができませんでした。
更新されなかった場合はいかなる場合でもエラーが返ります。
(読取専用でも、更新権限がなくても、トリガでロールバックしても、INSERT構文が不正でも)
・書かれたコード以外にエラーを抑え込むような記述(try-catchなど)はありませんよね?
・開発段階(ローカルでデバッグ、実行ができる状態)でもこの事象がおきますか?
・Database1.mdfは項目の追加で「SQLデータベース」を選んで、App_Dataの下に作ったんですよね?
・デバッグしても「cmd.ExecuteNonQuery()」は正常に通りますか?
jamshid6さん有難うございます。実際に試していただいて恐縮です。
>書かれたコード以外にエラーを抑え込むような記述(try-catchなど)はありませんよね?
他の記述はありません
>開発段階(ローカルでデバッグ、実行ができる状態)でもこの事象がおきますか?
開発段階でも同様の事象が起きます。
>Database1.mdfは項目の追加で「SQLデータベース」を選んで、App_Dataの下に作ったんですよね?
Database1.mdfとformが同じ階層にあります。
>デバッグしても「cmd.ExecuteNonQuery()」は正常に通りますか?
やはり正常に通ります。
jamshid6さんに回答していただいて分かったことは、やはり基本的なことが良く分かっていないと感じました。設定を再度見直してみます。厚かましいとは思いますが、基本的なことを学ぶのに参考となるサイトを教えていただけますか?
No.1
- 回答日時:
通常は別の処理順序で書きますよとか、Using句を使った方がとか、USER_IDは予約語ですよとか、いろいろあるにはあるんですが、
とりあえず書かれたコードは動くはずです。
だから、ここに開示されていない理由が原因だと思うのですが。
レコードが追加されません、とありますが、実行してもエラーメッセージも何も返らないのですか?
jamshid6さんご回答いただき有難うございます。
>とりあえず書かれたコードは動くはずです。
それを聞いて少し安心しました。
>だから、ここに開示されていない理由が原因だと思うのですが。
>レコードが追加されません、とありますが、実行してもエラーメッセージも何も返らないのですか?
そうなんです、実行してもエラーが返ってこないのでなにが悪いのかわからない状態です。ちなみにSELECT文は実行できています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- MySQL 次の時間帯の勝率の合計を求めるSQL文 1 2023/07/04 17:12
- Visual Basic(VBA) 実行時エラー´5854´ 文字列型パラメーターが長すぎます。 3 2023/06/08 21:17
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VC++でSQL Serverに接続するには
-
ファイルへのアクセスでエラー...
-
MSDEって何ですか?
-
【DB】同じトランザクション内...
-
DATファイルをEXCELで開きたい
-
警察はスマホに保存した動画や...
-
postgresql についてです
-
PCが悪くなって新しいPCにSSMS...
-
Accessdでの「トランザクション...
-
accessの処理が遅い
-
一つのトランザクションでSELEC...
-
復旧中のデータベースについて
-
TPSとは・・・
-
エクセルのフィルタ抽出が固まる
-
期限切れのバックアップの削除
-
SQLServer2012の復元ができない
-
ファイルとDBの違い
-
SQLサーバのデータ保存先
-
SQLServer2000でのトランザクシ...
-
富士通のオフコンの事でお聞き...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
接続されてるユーザーを切断す...
-
ファイルへのアクセスでエラー...
-
VC++でSQL Serverに接続するには
-
「パッシブシャットダウン」っ...
-
作成したDBを使いたい
-
MSDEって何ですか?
-
エクセルVBA:データベースの連...
-
データベースで
-
ADOでエクセルからSQL Serverへ...
-
SQL server認証に必要な最低限...
-
【DB】同じトランザクション内...
-
postgresql についてです
-
警察はスマホに保存した動画や...
-
DATファイルをEXCELで開きたい
-
エクセルのフィルタ抽出が固まる
-
ACCESSのデータをWebブラウザで...
-
復旧中のデータベースについて
-
PCが悪くなって新しいPCにSSMS...
-
1回目の実行に3分、2回目の実行...
-
SQL*Loaderのコミットポイント...
おすすめ情報