質問: 初心者です。 ASP.NETを学習中なのですが、情報が少なく困っておりまして、 どなたか教えていただけませんでしょうか。 よろしくお願いいたします。 ### 前提・実現したいこと 「現在作っているアプリとデータベース(SQL Server)を連携したい」です。 ※状況 ASP.NET(言語はVB.NET)を使用して、(ツイッターのような)簡易投稿アプリを作ろうと思っております。 ※プロジェクトを作る際は、(MVC等ではなく、空の状態から作っています) 現在、新規投稿する際のページを作成しておりまして、 ・そのページ仮のViewのコードを書いたファイル(下記、該当のソースコード)(マスターページを含むWebファイルで作成) ・SQL Serverをインストールし、(Windows認証で接続してます)そこに、Tweetsテーブル(idとtextのカラムを用意)を用意 を準備しました。 ここから、投稿内容に書き込んだ本文を、送信ボタンを押すことで、データベースに保存したいです。 送信を押したときに、データベースに保存するためには、そもそも連携が必要だと思うのですが、 そのやり方が調べていても、よくわからず困っております。 何か新しいフォルダやファイルを作って、そこに何かを書き込むのか、その流れと具体的な方法が知りたいです。 ### 該当のソースコード ``` <%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/Source/my-twitter.Master" CodeBehind="new.aspx.vb" Inherits="my_twitter._new" %> ツイート本文 ``` ### 試したこと 以下のページを参照しましたが、ある程度知識のある方前提のお話なのか、あまり理解できませんでした。 ASP.NET入門 ### 補足情報(FW/ツールのバージョンなど) 統合開発環境 Visual Studio2019 使用PC Windows10(Macで仮想環境を作って起動させているもの) DB関連 以下のサイトを参考にそのまま行いました。(SQL Server Express Edition) SQL Server入門 SQL Server Management Studioを使って管理しております。
回答: > > 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 アプリの場合はワーカープロセスのアカウント)の認証・承認の設定が必要です。