學會了如何自已寫程式的時候又發現當資料量大的時候
會去google找說如何正規化~
正規化後的資料怎麼抓呢
相信對於剛接觸ASP.NET的人來說
都會使用內建的控制項來抓資料~
但到了比較熟了以後當然會想說自已來寫程式來抓資料
畢竟有些網頁不大適合使用這些控制項
學會了如何自已寫程式的時候又發現當資料量大的時候
會去google找說如何正規化~
正規化後的資料怎麼抓呢
現在就來介紹一下囉!
這邊範例是使用access(沒辦法筆者窮~><)
資料庫會有兩個資料表
一、program
主要還是id要有的
二、pdate
這邊會有主要的是id跟pid
pid就是program的id
順便一提我的program放的是課程因為課程大多都是固定的
而課程會有好幾次,所以我將課程的日期放入pdate裡
01
<table border="2" width="750" bordercolor="#000000" align="center" cellspacing="0" cellpadding="8">
02
<tr>
03
<td width="175" height="34" align="center" bordercolor="#000000" bgcolor="#FECCCB">
04
<font size="2">課程名稱</font></td>
05
<td width="109" height="34" align="center" bordercolor="#000000" bgcolor="#FECCCB">
06
<font size="2">時間</font></td>
07
<td bordercolor="#000000" bgcolor="#FECCCB" height="34" width="290" align="center">
08
<font size="2">課程大綱</font></td>
09
<td width="98" height="34" align="center" bordercolor="#000000" bgcolor="#FECCCB">
10
<font size="2">備註</font></td>
11
12
13
</tr>
14
<%string strDbCon = "Provider=Microsoft.jet.OLEDB.4.0;" + "Data Source="+ Server.MapPath("App_Data\\course.mdb");
15
//建立資料庫連結
16
OleDbConnection objCon = new OleDbConnection (strDbCon);
17
objCon.Open();
18
string strSQL = "SELECT * FROM program";
19
OleDbCommand objCmd = new OleDbCommand(strSQL, objCon);
20
OleDbDataReader objDataReader = objCmd.ExecuteReader();
21
//讀取資料
22
while (objDataReader.Read())
23
{
24
//建立正規化資料表的連結
25
string strSQL2 = "SELECT * FROM pdate where pid="+objDataReader[0];
26
OleDbCommand objCmd2 = new OleDbCommand(strSQL2, objCon);
27
OleDbDataReader objDataReader2 = objCmd2.ExecuteReader();
28
Response.Write("<tr>");
29
Response.Write("<td width='175'><font size='2'>【" + objDataReader[1] + "】<br>" + objDataReader[2] + "</font></td>");
30
Response.Write("<td width='109'><font size='2' face='Franklin Gothic Demi Cond'>");
31
//讀取正規化資料表的資料
32
while (objDataReader2.Read())
33
{
34
//判斷資料是否為null
35
if (!objDataReader2.IsDBNull(2))
36
{
37
38
DateTime mytime1 = Convert.ToDateTime(objDataReader2[2]);
39
DateTime mytime2 = Convert.ToDateTime(objDataReader2[3]);
40
41
42
if (mytime1.ToString("dd") == mytime2.ToString("dd"))
43
{
44
Response.Write(mytime1.ToString("M/d") );
45
}
46
else
47
{
48
49 Response.Write(mytime1.ToString("M/dd-") + mytime2.ToString("dd") );
50
}
51
}
52
if (objDataReader2.IsDBNull(4))
53
{
54
Response.Write("<br/>");
55
}
56
else
57
{
58
string memo = Convert.ToString(objDataReader2[4]);
59
Response.Write("("+memo+")<br/>");
60
}
61
}
62
63
objDataReader2.Dispose();
64
objDataReader2.Close();
65
66
Response.Write("</font></td>");
67
Response.Write("<td width='290'><font size='2'>" + objDataReader[3] + "</font></td>");
68
if(objDataReader.IsDBNull(10)){
69
Response.Write("<td width='98'>.</td>");
70
}
71
else{
72
Response.Write("<td width='98'><font size='2'>" + objDataReader[10] + "</font></td>");
73
}
74
Response.Write("</tr>");
75
i++;
76
}
77
objDataReader.Dispose();
78
objDataReader.Close();
79
objCon.Dispose();
80
objCon.Close();
81
%>
82
</table>

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41
42

43

44

45

46

47

48

49 Response.Write(mytime1.ToString("M/dd-") + mytime2.ToString("dd") );
50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

p.s 明明等一下就要出門了~硬是要寫一篇~~XD