サンプル
* スケジュール管理を作成して、ASP.NETのデータベースへのアクセスを学ぶ
データベース
構成:Scheduleテーブル
* id int型(PK)
* title varchar(50)型
* date date型
* time char(5)型
* remarks varchar(255)型
【1】ScheduleTool.aspx
構成
* Calendarコントロール x 1
プログラム
Imports System.Data.Common
Public Class ScheduleTool
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim setting As ConnectionStringSettings = _
ConfigurationManager.ConnectionStrings("SampleDBConnectionString")
Dim factory As DbProviderFactory = _
DbProviderFactories.GetFactory(setting.ProviderName)
Using db As DbConnection = factory.CreateConnection()
db.ConnectionString = setting.ConnectionString
Dim command As DbCommand = factory.CreateCommand()
command.CommandText = _
"SELECT date FROM Schedule ORDER BY date DESC"
command.Connection = db
db.Open()
Dim reader As DbDataReader = command.ExecuteReader()
If reader.HasRows Then
Do While reader.Read()
Calendar1.VisibleDate = Date.Parse(reader("date"))
Exit Do
Loop
End If
db.Close()
End Using
End Sub
Protected Sub Calendar1_DayRender(sender As Object, e As System.Web.UI.WebControls.DayRenderEventArgs) Handles Calendar1.DayRender
Dim setting As ConnectionStringSettings = _
ConfigurationManager.ConnectionStrings("SampleDBConnectionString")
Dim factory As DbProviderFactory = _
DbProviderFactories.GetFactory(setting.ProviderName)
Using db As DbConnection = factory.CreateConnection()
db.ConnectionString = setting.ConnectionString
Dim command As DbCommand = factory.CreateCommand()
command.CommandText = _
"SELECT id, title, time FROM Schedule WHERE date = @date"
command.Connection = db
Dim parameter As DbParameter = factory.CreateParameter()
parameter.ParameterName = "@date"
parameter.Value = e.Day.Date.ToString("yyyy/MM/dd")
command.Parameters.Add(parameter)
db.Open()
Dim reader As DbDataReader = command.ExecuteReader()
Do While reader.Read()
Dim literalControl As New LiteralControl("<br />")
Dim link As New HyperLink()
link.NavigateUrl = "Details.aspx?id=" & reader("id")
link.Text = reader("time") & " " & reader("title")
e.Cell.Controls.Add(literalControl)
e.Cell.Controls.Add(link)
Loop
db.Close()
End Using
End Sub
End Class
【2】Details.aspx
構成
* FormViewコントロール x 1
* ValidationSummaryコントロール x 1
サンプル
Protected Sub FormView1_ItemInserting(sender As Object, e As System.Web.UI.WebControls.FormViewInsertEventArgs) Handles FormView1.ItemInserting
If Not Page.IsValid Then
e.Cancel = True
End If
End Sub
Protected Sub FormView1_ItemUpdating(sender As Object, e As System.Web.UI.WebControls.FormViewUpdateEventArgs) Handles FormView1.ItemUpdating
If Not Page.IsValid Then
e.Cancel = True
End If
End Sub
Protected Sub FormView1_ItemInserted(sender As Object, e As System.Web.UI.WebControls.FormViewInsertedEventArgs) Handles FormView1.ItemInserted
Response.Redirect("ScheduleTool.aspx")
End Sub
Protected Sub FormView1_ItemUpdated(sender As Object, e As System.Web.UI.WebControls.FormViewUpdatedEventArgs) Handles FormView1.ItemUpdated
Response.Redirect("ScheduleTool.aspx")
End Sub
Protected Sub FormView1_ItemDeleted(sender As Object, e As System.Web.UI.WebControls.FormViewDeletedEventArgs) Handles FormView1.ItemDeleted
Response.Redirect("ScheduleTool.aspx")
End Sub