IISをポート8080で使う。機能ページは、ASP.NETで対応すと言う方針を決めよう。となると、いろいろ失敗続きのデータベースのお出ましだ。データベースを使う簡単なデモプログラムを作るとことから始めよう。
①空のホルダーを準備する。
②Web Developer 2010 Expressを立ち上げ、「新しいWebサイト」を選択、ASP.NET空のWebサイトを選択して、参照で、空のホルダーを指定して、OKをクリックする。
③メニューのWebサイト、新しい項目の追加、Webフォームを選択する。
④デザインタブを開き、ツールメニューから、SqlDataSource、Calendar、Label、textbox1、textbox2を適当に配置しよう。textbox2は、TextModeでMultiLineにしておこう。それにコマンドボタンを2つ。
右の⑤ソリューションエクスプローラのプロジェクトの所を右クリックして、新しい項目の追加、SQL Server データベースを選択し、追加をクリック。Database.mdfが追加される。
⑥テーブルを右クリック、新しいテーブルの追加で、date,datetime,主キー、title,nvarchar(50),Null, sentence,nvarchar(MAX),Null.などとデータベースを構築する。入力したら、それをテーブル名を付けて保管する。
⑦デザイン画面に戻り、SqlDataSourceをクリック、「>」をクリックして、データソースの構成を選択。接続は、先程のDatabase.mdfを選択。次へ、ConnectionStringも次へ。まず、WHEREから、これは、読み取りの話だから、列は、dateを選択。演算子は、その日の意味で「=」を選択、ソースは、何にしましょうか。取りあえず、Control、つまり、ここでは、コントロールアイコンだね。右を見て、コントロールIDにLabel1を選びましょう。最後に追加、OK。次は、ORDER BYをクリック、dateを選んでOK。その次は、詳細設定をクリック。書き込みなどの設定だ。と言う事で、INSERT,...をチェック。完了。
⑧書き込みから行きましょう。SqlDataSourceをクリックして、プロパティのInsertQueryを展開する。dateで、パタメータソースは、Control、Control IDには、Label1を選択。titleに移り、同様に、Control、Textbox1、sentenceは、TextBox2を選択する。OKで終わり。
⑨実行のコードを記入しましょう。まず、カレンダーをダブルクリック。そこに、Label1.Text = Calendar1.SelectedDate.ToString("yyyy/MM/dd")を記入。次は、コマンドボタンをダブルクリック。そこにSqlDataSource1.Insert()を記入。おわり。実行ボタンをクリックして動作を確認しましょう。まず、カレンダーで日付を選択。テストデータを記入し、コマンドボタンをクリック。エラーが出なければ成功。
⑩次は、読み出し。もう一つのコマンドボタンを読み出しボタンとして、そこにコードを書きましょう。これは、ネットに例が有りました。
Dim arguments = New DataSourceSelectArguments()
Dim dtView = Me.SqlDataSource1.Select(arguments)
'結果を取得
For Each dtRowView In dtView
TextBox1.Text = dtRowView("title")
TextBox2.Text = dtRowView("sentence")
Next
主キーは、日付けなので同じ日付けでは、書き込めません。動作の確認なので、SQLインジェクション攻撃やページのポストバックなどは、全く考慮に入れていません。ここで分かった事は、当然でしょうが、ASP.NETでは、データベースが、結構簡単に使えると言う事が分かりました。