1<%@ Import Namespace="System.Data.SqlClient"%>
2<%@ Import Namespace="System.Data"%>
3<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
4<html>
5 <head>
6 <meta http-equiv="Content-Type" content="text/html; charset=big5">
7 <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
8 <script language="C#" runat="server">
9 override protected void OnInit(EventArgs e) {
10 this.Button1.Click += new System.EventHandler(this.Button1_Click);
11 }
12
13 private void Button1_Click(object sender, System.EventArgs e) {
14 string strSQL = "SELECT count(*) " +
15 "FROM customers " +
16 "WHERE customerid = @customerid";
17
18 SqlConnection con = new SqlConnection("server=(local);database=northwind;integrated security=sspi");
19 SqlCommand cmd = new SqlCommand(strSQL,con);
20 cmd.Parameters.Add("@customerid","ALFKI");
21
22 try {
23 con.Open();
24 this.Label1.Text = cmd.ExecuteScalar().ToString();
25 }
26 catch(Exception err) {
27 if (Trace.IsEnabled)
28 Trace.Warn(err.ToString());
29
30 return;
31 }
32 finally {
33 con.Close();
34 }
35 }
36 </script>
37 </head>
38 <body>
39 <form id="Form1" method="post" runat="server">
40 <h4 style="FONT-FAMILY: Verdana">Demo : 如何抓取第一筆資料的第一個欄位或scalar值?</h4>
41 <h5 style="FONT-FAMILY: Arial">By Clare Hsiao 2004.09.10</h5>
42 <hr size="2">
43 <p></p>
44 <asp:button id="Button1" text="Button" runat="server"></asp:button>
45 <asp:label id="Label1" runat="server"></asp:label>
46 <p></p>
47 <h5>Note:</h5>
48 <ol>
49 <li>
50 這種寫法執行執行速度較快,尤其在使用count(*),或從Stored Procedure抓回傳值時特別好用,不需大費周章還去建立DataReader.
51 </li>
52 <li>
53 若該SQL沒有傳回任何值,則產生Exception,所以若沒有把握一定能傳回值時,還是建議用SqlDataReader.</li>
54 </ol>
55 </form>
56 </body>
57</html>
58
2<%@ Import Namespace="System.Data"%>
3<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
4<html>
5 <head>
6 <meta http-equiv="Content-Type" content="text/html; charset=big5">
7 <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
8 <script language="C#" runat="server">
9 override protected void OnInit(EventArgs e) {
10 this.Button1.Click += new System.EventHandler(this.Button1_Click);
11 }
12
13 private void Button1_Click(object sender, System.EventArgs e) {
14 string strSQL = "SELECT count(*) " +
15 "FROM customers " +
16 "WHERE customerid = @customerid";
17
18 SqlConnection con = new SqlConnection("server=(local);database=northwind;integrated security=sspi");
19 SqlCommand cmd = new SqlCommand(strSQL,con);
20 cmd.Parameters.Add("@customerid","ALFKI");
21
22 try {
23 con.Open();
24 this.Label1.Text = cmd.ExecuteScalar().ToString();
25 }
26 catch(Exception err) {
27 if (Trace.IsEnabled)
28 Trace.Warn(err.ToString());
29
30 return;
31 }
32 finally {
33 con.Close();
34 }
35 }
36 </script>
37 </head>
38 <body>
39 <form id="Form1" method="post" runat="server">
40 <h4 style="FONT-FAMILY: Verdana">Demo : 如何抓取第一筆資料的第一個欄位或scalar值?</h4>
41 <h5 style="FONT-FAMILY: Arial">By Clare Hsiao 2004.09.10</h5>
42 <hr size="2">
43 <p></p>
44 <asp:button id="Button1" text="Button" runat="server"></asp:button>
45 <asp:label id="Label1" runat="server"></asp:label>
46 <p></p>
47 <h5>Note:</h5>
48 <ol>
49 <li>
50 這種寫法執行執行速度較快,尤其在使用count(*),或從Stored Procedure抓回傳值時特別好用,不需大費周章還去建立DataReader.
51 </li>
52 <li>
53 若該SQL沒有傳回任何值,則產生Exception,所以若沒有把握一定能傳回值時,還是建議用SqlDataReader.</li>
54 </ol>
55 </form>
56 </body>
57</html>
58