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

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

新規登録して質問してみよう
ただいま回答率
85.50%
SQL Server

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

ASP.NET

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

Q&A

解決済

1回答

8392閲覧

ASP.NETにおけるデータベースへの接続の仕方

Eltk

総合スコア51

SQL Server

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

ASP.NET

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

0グッド

0クリップ

投稿2019/08/11 23:34

編集2019/08/12 02:46

初心者です。
ASP.NETを学習中なのですが、情報が少なく困っておりまして、
どなたか教えていただけませんでしょうか。
よろしくお願いいたします。

前提・実現したいこと

「現在作っているアプリとデータベース(SQL Server)を連携したい」です。

※状況
ASP.NET(言語はVB.NET)を使用して、(ツイッターのような)簡易投稿アプリを作ろうと思っております。
※プロジェクトを作る際は、(MVC等ではなく、空の状態から作っています)

現在、新規投稿する際のページを作成しておりまして、
・そのページ仮のViewのコードを書いたファイル(下記、該当のソースコード)(マスターページを含むWebファイルで作成)
・SQL Serverをインストールし、(Windows認証で接続してます)そこに、Tweetsテーブル(idとtextのカラムを用意)を用意
を準備しました。
ここから、投稿内容に書き込んだ本文を、送信ボタンを押すことで、データベースに保存したいです。

送信を押したときに、データベースに保存するためには、そもそも連携が必要だと思うのですが、
そのやり方が調べていても、よくわからず困っております。
何か新しいフォルダやファイルを作って、そこに何かを書き込むのか、その流れと具体的な方法が知りたいです。

該当のソースコード

VB.NET

1<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/Source/my-twitter.Master" CodeBehind="new.aspx.vb" Inherits="my_twitter._new" %> 2<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> 3</asp:Content> 4<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> 5 <link rel="stylesheet" href="/CSS/new.css" /> 6 <form action="#" method="post"> 7 <p><label for="text-field">ツイート本文</label><br /> 8 <textarea class="test" name="tweet-text" id="text-field" maxlength="140"></textarea></p> 9 <asp:Button ID="Button1" runat="server" Text="送信" /> 10 </form> 11</asp:Content>

試したこと

以下のページを参照しましたが、ある程度知識のある方前提のお話なのか、あまり理解できませんでした。

ASP.NET入門

補足情報(FW/ツールのバージョンなど)

統合開発環境
Visual Studio2019

使用PC
Windows10(Macで仮想環境を作って起動させているもの)

DB関連
以下のサイトを参考にそのまま行いました。(SQL Server Express Edition)
SQL Server入門

SQL Server Management Studioを使って管理しております。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2019/08/12 00:35

> DB関連 > SQL Server Management Studio SQL Server Management Studio は SQL Server ではありません。SQL Server の管理ツールです。SQL Server のバージョン・エディションを書いてください? ひょっとして SQL Server ではなくて LocalDB ではないのですか?
退会済みユーザー

退会済みユーザー

2019/08/12 00:45

MVC とか View という ASP.NET MVC アプリに使われる言葉が出てきますが、コードを見ると作っているのは ASP.NET Web Forms アプリのようです。ここで話をするのは ASP.NET MVC アプリではなくて、ASP.NET Web Forms アプリということで良いのですね?
gentaro

2019/08/12 01:12

> あまり理解できませんでした。 どこが理解できなかったのかを書かないと、ここで「理解できない」回答が繰り返されるだけじゃないでしょうか。
Eltk

2019/08/12 02:56

> 皆様 大変失礼いたしました。 1.リンクの書き方を修正いたしました。 2.LocalDBというものが何かわかっておらず、調べましたらおっしゃるとおり、SQL Server Express EditionはLocalDBというもののようでした。 3.MVCアプリと、WebFormsの違いはよくわかっていないのですが、 プロジェクトを新規作成する際、Webアプリケーションというものを選択して、開始しました。 4.理解できなかった箇所としましては、 ・サイト内に載っているコードは、新たに(サイト内の名前の通り)ファイルを作ってそのまま書くのか ・コードをコピペするだけで何もせずとも接続されるのか ・参考サイトはSQL認証の場合とされていたが、Windows認証の場合はどうなるのか の点が、記事を読んでいても主に理解できませんでした。 以上、よろしくお願いいたします。
len_souko

2019/08/12 03:19

4.の理解できなかった個所はここに書くのではなくて質問文に書いてください ここに書いてある内容は質問者とのやり取りのためなので全部表示されるわけではありませんので、見ようとしない限り表示されません
退会済みユーザー

退会済みユーザー

2019/08/12 03:34

> 2.LocalDBというものが何かわかっておらず、調べましたらおっしゃるとおり、SQL Server Express EditionはLocalDBというもののようでした。 ホントに LocalDB なのですか? 質問欄に追記された https://sql55.com/sql-server/install-microsoft-sql-server.php の記事に書いてあるのは LocalDB ではなく SQL Server の Express 版ですけど。LocalDB と SQL Server Express は違うものです。どっちかはっきりしてください。 基本的なところが理解できてないようですのですこし勉強してください。文章でやり取りする掲示板ですから、話が通じる程度の基本的な知識がないと話が通じなくて、なかなか解決にたどり着けないです。
退会済みユーザー

退会済みユーザー

2019/08/12 03:38

> 3.MVCアプリと、WebFormsの違いはよくわかっていないのですが、 そこも勉強して、どっちにしたいのかはっきりさせてください。Web Forms で説明して、実は作りたいのは MVC でしたとか言われると、答えた方はバカみたいです。
guest

回答1

0

ベストアンサー

4.理解できなかった箇所としましては、

そこだけ分かれば解決するということはなさそうな気がしますが、とりあえずその「理解できなかった箇所」の 3 点に答えます。

以下の説明には、多分、分からない用語とかあると思いますが、独自に基本的なところの勉強進めて、理解できるようになってください。

・サイト内に載っているコードは、新たに(サイト内の名前の通り)ファイルを作ってそのまま書くのか

ASP.NET Web Forms アプリを Web サイトプロジェクトで作成すると、.aspx と .aspx.vb にファイルを分けなくても、VB.NET のコードを含め全て .aspx ファイルに記述することができます。参考にしている記事のコードはそれです。

しかし、同じ ASP.NET Web Forms アプリでも、Web アプリケーションプロジェクトで作成すると、ページは必ず .aspx と .aspx.vb にファイルを分けて、VB.NET のコード、即ち参考にされている記事で言うとイベントハンドラのコードは .aspx.vb ファイルに記述することになります。

質問者さんが質問にアップしたコードを見ると、Web アプリケーションプロジェクトで作成したもののようですので、.aspx とは別ファイルの .aspx.vb ファイルに記述することになります。質問者さんのコードを見ると CodeBehind="new.aspx.vb" の new.aspx.vb がそれのはずで、骨格は自動生成されてファイル自体は存在していると思います。それにイベントハンドラのコードを追加することになります。

・コードをコピペするだけで何もせずとも接続されるのか

そんなことはあり得なくて、SQL Server がきちんとインストールされて動いているのはもちろんのこと、正しい接続文字列を設定しなければダメです。

さらに、SQL Server Express を利用しているとすると、SQL Server Express 側にもアクセスするユーザー(ASP.NET Web アプリの場合はワーカープロセスのアカウント)の認証・承認の設定が必要です。

・参考サイトはSQL認証の場合とされていたが、Windows認証の場合はどうなるのか

SQL Server で Windows 認証が有効になっていれば(多分デフォルトで有効になっていると思いますが)、接続文字列を変更するだけで済むはずです。

ローカルの SQL Server Express の sqlexpress という名前の名前付きインスタンス(SQL Server の Express 版をデフォルトでインストールするとそうなります)に PUBS というデータベース名を指定して Windows 認証で接続する例ですが、以下のようになります。

Data Source=(local)\sqlexpress;Initial Catalog=PUBS;Integrated Security=True

なお、この場合も、SQL Server Express を利用しているとすると、SQL Server Express 側にアクセスするユーザー(ASP.NET Web アプリの場合はワーカープロセスのアカウント)の認証・承認の設定が必要です。

投稿2019/08/12 04:52

編集2019/08/12 04:58
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

Eltk

2019/08/12 06:37 編集

詳しく教えていただき、ありがとうございます。 作成しようとしているページのvbのファイルの方に記述するのですね。 おっしゃる通り、わからない表現や用語などありますが、調べて少しでも理解できるよう努めます。 質問の仕方が良くなかったにも関わらず、丁寧に教えてくださり、ありがとうございました。 一度、やってみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問