お気楽サンプルで♪
要件は、ユーザーの電話番号をキーにして、DBに情報を蓄積したい。WEBから登録できるようにしたいなぁってカンジ。蓄積するテーブルはこんなの。
で、登録をする前のダブりチェックには、LINQを使ってみる。ついでに、エラーだったときはSessionオブジェクトにItemを追加して、ページでMSGを出すようにしておきたい。けれど、わざとポストバックを使わずに、超ローテクで作ってみるサンプル(笑)
userm.dbml
まずはこれを作らないと始まらないらしい(^^;
SQLServer(Expressでも可)にテーブルを作ってます。今回は電話番号登録用だけのマスターテーブルみたいなの。で、LINQ to SQL クラスを選択して、白紙に目的のテーブルをサーバーエクスプローラからD&D、ドラドロ、まぁドラッグアンドドロップ、すると
こうなるから、これを名前をつけて保存しておきます。これが無いと話にならんらしいの。
regist.aspx.vb
で、WEBの方は、電話番号入力(txTelno)、登録ボタン(BtnOK)、メッセージ表示(lb_MSG)を準備して、実際にロジックを作成。
Imports System.Linq
Partial Public Class _Default
Inherits System.Web.UI.Page
Protected Sub BtnOK_Click(ByVal sender As Object, ByVal e As EventArgs) Handles BtnOK.Click
Dim wTELNO As Long = 0
Try
wTELNO = CLng(TxTel.Text.Replace("-", "").Replace("(", "").Replace(")", ""))
Finally
End Try
Using UserCheck As usermDataContext = New usermDataContext
Dim user = From U In UserCheck.UserM _
Where U.TELNO = wTELNO _
Select U.TELNO
If user.Count > 0 Then
Dim mKey = From K In Session.Keys Where K.ToString = "MSG"
If mKey.Count > 0 Then Session.Remove("MSG")
Session.Add("MSG", "ユーザーはすでに登録済です")
Response.Redirect("./regist.aspx")
End If
End Using
End Sub
Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim mKey = From K In Session.Keys Where K.ToString = "MSG"
If mKey.Count > 0 Then lb_msg.Text = Session("MSG").ToString
End Sub
End Class
|
赤い文字がLINQロジック、青い文字はその検索結果、緑の文字がデータベースとの処理をしているLINQ to SQLのオブジェクト部分。うん、動いた動いた。まぁまだまだツッコミどころはいっぱいなんだろうけど、ちょっと判ってきた。これを敲き台にチェックロジックやらごにょごにょやらしていくか(笑)
ランプサンスーチョンうまwww