質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

IIS

IIS(Internet Information Services)はマイクロソフト社によって開発されたwebサーバーです。Windows上で動作します。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

Q&A

0回答

1770閲覧

IISに発行したWebアプリからSQLServerにデータの登録・更新ができるようにしたいです。

yoogetsu

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

IIS

IIS(Internet Information Services)はマイクロソフト社によって開発されたwebサーバーです。Windows上で動作します。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

0グッド

0クリップ

投稿2020/08/16 08:04

編集2020/08/22 07:17

IISに発行したWebアプリからSQLServerにデータの登録・更新ができるようにしたいです。

以下の環境で、Webアプリを開発しています。

開発環境:Visual Studio 2019(ASP.NET使用)
データベース:SQLServer

■問題
IISに発行したWebアプリを起動して操作すると、データの登録・更新時にのみSQLServerにうまく接続ができないのか、ページがずっと読み込み状態になってしまいます。
データベースを確認したところ、データが問題なく登録されている場合と、されていない場合がありました。
データの読み込みと削除時はこのようなことは起きず、問題なく動いていることが確認できています。
しかし、デバッグ時にはデータの登録・更新も問題無く実行できていました。
IISに発行したWebアプリだけが、一部SQLがうまく動かないといった問題が起きています。

また、一度データベースとの接続がうまくいかないことでページがずっと読み込み中になってしまうと、今度はWebアプリの起動すらできなくなってしまいます。
エラーメッセージは出ないので原因がわからない状態です。

以下に、Select文とInsert文を記載します。

SQLへの接続ソースコード

C#

1/// <summary> 2 /// 冷蔵庫のアイテムIDの最大値を取得する 3 /// </summary> 4 /// <returns></returns> 5 public int GetMaxId() 6 { 7 string strSelect = "SELECT MAX(ItemId) as ItemId FROM RefrigeratorItem"; 8 9 int intItemId = 0; 10 11 using (var con = new SqlConnection(strCon)) 12 { 13 using (var strSQL = new SqlCommand(strSelect, con)) 14 { 15 try 16 { 17 con.Open(); 18 SqlDataReader sdr = strSQL.ExecuteReader(); 19 20 while (sdr.Read() == true) 21 { 22 intItemId = (int)sdr["ItemId"]; 23 } 24 25 return intItemId; 26 } 27 catch (Exception error) 28 { 29 MessageBox.Show(error.Message); 30 return intItemId; 31 } 32 finally 33 { 34 con.Close(); 35 } 36 } 37 38 } 39 } 40 41/// <summary> 42 /// 冷蔵庫のアイテムを一覧に追加する 43 /// </summary> 44 public void InsertRefrigeratorItem(RefrigeratorItem_Dto input) 45 { 46 string strInsert = "INSERT INTO RefrigeratorItem values(@p1, @p2, @p3, @p4)"; 47 SqlParameter p1; 48 SqlParameter p2; 49 SqlParameter p3; 50 SqlParameter p4; 51 52 using (var con = new SqlConnection(strCon)) 53 { 54 using (var strSQL = new SqlCommand(strInsert, con)) 55 { 56 p1 = strSQL.Parameters.Add("@p1", SqlDbType.Int); 57 p1.Value = GetMaxId() + 1; 58 59 p2 = strSQL.Parameters.Add("@p2", SqlDbType.NVarChar, 50); 60 p2.Value = input.ItemName; 61 62 p3 = strSQL.Parameters.Add("@p3", SqlDbType.DateTime); 63 p3.Value = input.BestByDate; 64 65 p4 = strSQL.Parameters.Add("@p4", SqlDbType.Int); 66 p4.Value = input.Quantity; 67 68 try 69 { 70 con.Open(); 71 strSQL.ExecuteNonQuery(); 72 73 } 74 catch (Exception error) 75 { 76 MessageBox.Show(error.Message); 77 } 78 finally 79 { 80 con.Close(); 81 } 82 } 83 } 84 }

試したこと

SQLServerへの接続方法に、Windows認証とSQLServer認証のどちらも試したのですがうまくいきませんでした。

ページの読み込み時に、SELECT文でデータを取得してきてページに表示するのですが、それは問題無くできているのでデータベースへの接続はできているのか、できていないのか分からない状態です。

初めて質問させていただいたので、足りていない情報等があれば教えていただきたいです。
1人でずっと悩んでいて限界を感じたので質問させていただきました。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/08/16 09:37

ASP.NET のタグをつけてください。 環境を書いてください。特に Core or .NET どちらかとそのバージョン、SQL Server のバージョンエディション、IIS のバージョン、デバッグ時と IIS 上での運用はどこがどう違うのかなど。 ASP.NET と言っても Web Forms, MVC, Web API などいろいろありますが何ですか?
yoogetsu

2020/08/22 07:15

回答が遅れてしまい申し訳ありません。 ASP.NETは、.NET Framework 4.7.2です。 SQL Serverのバージョンは、2019です。 IISのバージョンは、10です。 Web フォームを使用しています。 デバッグ時とIIS上での違いは、デバッグ時はデータベースの操作が参照、更新、登録、削除のすべてが可能であるのに対して、IISからだと参照、削除は可能であるが、登録、更新は不可能(場合によっては内部的に処理がされているときがある)で、ページが読み込み中のままいつまでも処理が終わらないという現象が起きてしまう点です。
退会済みユーザー

退会済みユーザー

2020/08/22 07:52

上のコメントの環境情報は質問欄を編集して追加情報として追記願います。 私の質問の、 > デバッグ時と IIS 上での運用はどこがどう違うのか というのは環境の違いのことです。開発環境では開発マシンの Visual Studio から IIS Express 上で動かしているのではないですか? そして「IISに発行した」というのはどういう状態なのですか? 開発マシンのローカル IIS でサイトまたはアプリケーションとして設定して動かしているのですか? ・・・と言うような情報です。 SQL Server のエディションは何ですか? LocalDB ではないですよね? 開発マシンにインストールしたものなのですか? IIS Express, IIS の違い、認証方式の違いで SQL Server の認証・承認の設定をきちんと変えないとダメなはずですが、そのあたりはどうなんですか?
退会済みユーザー

退会済みユーザー

2020/08/23 03:42

上のコメントに返事がありませんが、「まだ回答を求めています」と書いておきながら、また最初のコメントの時のようにしばらく無言になるのですか? 積極的に Q&A を進める気があるならコメントに対してタイムリーに返事してください。そうでないなら回答欄にその旨書いてクローズしてください。
退会済みユーザー

退会済みユーザー

2020/08/26 09:08

返事がない=会話ができない=フォローしても時間と労力の無駄になりそう・・・と言うことらしいので、自分は撤退します。悪しからず。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問