<%@ Import Namespace="System.Data"%>
<%@ Import Namespace="System.Data.SqlClient"%>
<%@Import Namespace="System.IO" %>
<%@Import Namespace="System.Timers" %>
<%@ Page Language="VB" %>
<script runat="server">
Sub Page_Load(sender As Object, e As EventArgs)
Dim aTimer As Timer
aTimer = New System.Timers.Timer(1000)
AddHandler aTimer.Elapsed, AddressOf BindData
aTimer.Interval = 3000
aTimer.Enabled = True
End Sub
Sub BindData(source As Object, e As ElapsedEventArgs)
'*** DataSet ***'
Dim ds As DataSet
ds = CreateDataSet()
myRepeater.DataSource = ds.Tables(0).DefaultView
myRepeater.DataBind()
End Sub
'*** DataSet ***'
Function CreateDataSet() As DataSet
Dim objConn As New System.Data.SqlClient.SqlConnection
Dim objCmd As New System.Data.SqlClient.SqlCommand
Dim dtAdapter As New System.Data.SqlClient.SqlDataAdapter
Dim wr As StreamWriter = File.CreateText(Server.MapPath("callalert.xml"))
Dim ds As New DataSet
Dim strConnString,strSQL As String
strConnString = "Server=localhost;UID=sa;PASSWORD=xxxx;database=BloodDB;Max Pool Size=400;Connect Timeout=1000;"
strSQL = "SELECT M.HospitalName,C.BloodGroup,C.Quantity,C.Urgency FROM checkmember M INNER JOIN CallEmerge C ON M.Username = C.Username ORDER BY Urgency ASC"
objConn.ConnectionString = strConnString
With objCmd
.Connection = objConn
.CommandText = strSQL
.CommandType = CommandType.Text
End With
dtAdapter.SelectCommand = objCmd
dtAdapter.Fill(ds)
'***ds.WriteXml(Server.MapPath("callalert.xml"))***'
ds.WriteXml(wr)
wr.Close()
dtAdapter = Nothing
objConn.Close()
objConn = Nothing
System.Threading.Thread.Sleep(10000)
Return ds '*** Return DataSet ***'
End Function
</script>
<html>
<head>
<title>Blood widget - System.Data.SqlClient</title>
</head>
<body>
<form id="form1" runat="server">
<asp:Repeater id="myRepeater" runat="server">
<HeaderTemplate>
<table border="1">
<tr>
<th>HospitalName</th>
<th>BloodGroup</th>
<th>Quantity</th>
<th>Urgency</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%#Container.DataItem("HospitalName") %></td>
<td><%#Container.DataItem("Quantity") %></td>
<td><%#Container.DataItem("BloodGroup") %></td>
<td><%#Container.DataItem("Urgency") %></td>
</tr>
</ItemTemplate>
</asp:Repeater>
</form>
</body>
</html>
ถ้าจะกำหนดให้ Page หน้านี้ Refresh ข้อมูลตัวเองในเวลาที่กำหนดแบบง่ายๆ นั้น ถ้าจะให้ Page Refresh อีก 7 นาที 45 วินาที
แบบนั้นจะเขียนค่อนยากและยาวค่ะแต่ถ้ากำหนดให้ Page Refresh ข้อมูลเป็นช่วงๆ จะง่ายกว่ามาก เติม TAG HTML
TAG เดียว และกำหนดช่วงระยะเวลาที่เหมาะสมไว้ เช่น ถ้าไม่เร่งอะไร ก็ประมาณ 5 นาที
โดยใช้
>> meta http-equiv="refresh" content="เวลาเป็นวินาที" ค่ะ
ใส่ไว้ใน HEADER ของ ไฟล์ ASPX ค่ะ บริเวณระหว่าง TAG HEAD Code (C#)
<HEAD>
<title>Refresh ทุกๆ 5 นาทีนะจ๊ะ</title>
<!--The next line of code will refresh the page every 5 minutes-->
<meta http-equiv="refresh" content="300">
</HEAD>