Tải bản đầy đủ (.pdf) (10 trang)

ASP.NET 4 Unleased - p 40 ppsx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (999.95 KB, 10 trang )

ptg
364
CHAPTER 8 Overview of Data Access
In ASP.NET version 1.x, you had to use DataBinder.Eval() when displaying data items in
a template. However, Microsoft took pity on programmers after ASP.NET 2.0 and provided
us with the shorter syntax.
NOTE
Technically, the Eval() method uses reflection when evaluating the data item to find
a property with a certain name. You do pay a performance penalty when you use
reflection.
As an alternative, you can improve the performance of your DataBinding expressions by
casting the data items to a particular type like this:
<%# ((System.Data.DataRowView)Container.DataItem)[“Title”] %>
The second DataBinding expression in Listing 8.11 includes a second parameter. The
Eval() method, optionally, accepts a format string. You can use the format string to
format values such as dates and currency amounts. In Listing 8.11, the format string
formats the DateReleased column as a long date.
FIGURE 8.10 Using databinding expressions.
From the Library of Wow! eBook
ptg
365
Understanding Templates and DataBinding Expressions
8
NOTE
Format strings use format specifiers such as the D format specifier when formatting
strings. You can find a list of format specifiers by looking up Formatting Types in the
index of the Microsoft .NET Framework SDK documentation.
You can call other methods than the Eval() method in a DataBinding expression. For
example, the DataBinding expression in Listing 8.12 calls a method named FormatTitle()
to format the movie titles.
LISTING 8.12 FormatMovieTitles.aspx


<%@ Page Language=”C#” %>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.1//EN”

<script runat=”server”>
public string FormatTitle(Object title)
{
return “<b>” + title.ToString().ToUpper() + “</b>”;
}
</script>
<html xmlns=” >
<head id=”Head1” runat=”server”>
<title>Format Movie Titles</title>
</head>
<body>
<form id=”form1” runat=”server”>
<div>
<asp:Repeater
id=”Repeater1”
DataSourceId=”srcMovies”
Runat=”server”>
<ItemTemplate>
<%# FormatTitle(Eval(“Title”)) %>
<hr />
</ItemTemplate>
</asp:Repeater>
<asp:SqlDataSource
id=”srcMovies”
ConnectionString=”Data Source=.\SQLExpress;
From the Library of Wow! eBook
ptg

366
CHAPTER 8 Overview of Data Access
AttachDbFilename=|DataDirectory|MyDatabase.mdf;
Integrated Security=True;User Instance=True”
SelectCommand=”SELECT Title FROM Movies”
Runat=”server” />
</div>
</form>
</body>
</html>
The FormatTitle() method is defined in the page in Listing 8.12. This method formats
each of the titles displayed by the Repeater control by making each title bold and upper-
case (see Figure 8.11).
FIGURE 8.11 Formatting movie titles.
Using Two-Way DataBinding Expressions
The ASP.NET Framework actually supports two types of templates and two types of
DataBinding expressions. The ASP.NET Framework supports both one-way DataBinding
expressions and two-way DataBinding expressions.
Up to this point, we have used one-way DataBinding expressions exclusively. In a one-
way DataBinding expression, you use the DataBinding expression to display the value of a
data item. You use the Eval() method to display the value of a one-way DataBinding
expression.
From the Library of Wow! eBook
ptg
367
Understanding Templates and DataBinding Expressions
8
In a two-way DataBinding expression, you not only can display the value of a data item,
you also can modify the value of a data item. You use the Bind() method when working
with a two-way DataBinding expression.

For example, the page in Listing 8.13 contains a FormView control that includes a template
for editing a movie record in the Movies database table (see Figure 8.12).
FIGURE 8.12 Editing a movie.
LISTING 8.13 ShowFormView.aspx
<%@ Page Language=”C#” %>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.1//EN”

<html xmlns=” >
<head id=”Head1” runat=”server”>
<title>Show FormView</title>
</head>
<body>
<form id=”form1” runat=”server”>
<div>
<asp:FormView
id=”FormView1”
DataKeyNames=”Id”
DataSourceId=”srcMovies”
DefaultMode=”Edit”
AllowPaging=”true”
Runat=”server”>
<EditItemTemplate>
<asp:Label
id=”lblTitle”
Text=”Title:”
AssociatedControlID=”txtTitle”
Runat=”server” />
From the Library of Wow! eBook
ptg
368

CHAPTER 8 Overview of Data Access
<asp:TextBox
id=”txtTitle”
Text=’<%#Bind(“Title”)%>’
Runat=”server” />
<br />
<asp:Label
id=”lblDirector”
Text=”Director:”
AssociatedControlID=”txtDirector”
Runat=”server” />
<asp:TextBox
id=”txtDirector”
Text=’<%#Bind(“Director”)%>’
Runat=”server” />
<br />
<asp:Button
id=”btnUpdate”
Text=”Update”
CommandName=”Update”
Runat=”server” />
</EditItemTemplate>
</asp:FormView>
<asp:SqlDataSource
id=”srcMovies”
ConnectionString=”Data Source=.\SQLExpress;
AttachDbFilename=|DataDirectory|MyDatabase.mdf;
Integrated Security=True;User Instance=True”
SelectCommand=”SELECT Id, Title,Director,DateReleased FROM Movies”
UpdateCommand=”UPDATE Movies SET Title=@Title,

Director=@Director WHERE Id=@Id”
Runat=”server” />
</div>
</form>
</body>
</html>
The FormView contains an EditItemTemplate. The EditItemTemplate contains three
TextBox controls. Each TextBox control has a two-way DataBinding expression assigned to
its Text property.
The DataBinding expressions associate the TextBox control properties with the properties
of the data item being edited. When you click the Update button, any changes you make
to the Text properties are updated in the Movies database table.
From the Library of Wow! eBook
ptg
369
Overview of SQL Server 2008 Express
8
NOTE
Templates that suppor t one-way databinding implement the ITemplate interface, and
templates that support two-way databinding implement the IBindableTemplate interface.
Overview of SQL Server 2008 Express
Microsoft SQL Server 2008 Express is the version of SQL Server bundled with Visual Web
Developer. You can also download this database engine from the Microsoft website
( SQL Server Express is used for almost all
the database examples in this book.
In this section, you are provided with a brief overview of the features of this database. You
also learn how to connect to SQL Server Express.
Features of SQL Server Express
One of the most important features of SQL Server 2008 Express is that it is a royalty-free
database engine. You can download it and use it for free in your applications. You also can

distribute the database in commercial applications that you produce for others without
paying royalties to Microsoft. (Registration at the Microsoft site is required to do this.)
Microsoft SQL Server 2008 Express uses the same database engine as the full retail version
of SQL Server 2008. However, because it is a free product, Microsoft has limited some of its
features to encourage you to upgrade to the full version of SQL Server 2008.
First, unlike the full version of SQL Server 2008, a SQL Server Express database can be no
larger than 4 gigabytes. Furthermore, SQL Server Express is limited to using 1 gigabyte of
RAM. Also, SQL Server Express uses only a single processor even when used on a multi-
processor server.
SQL Server Express also does not support several of the advanced features of the full
version of SQL Server 2008. For example, it doesn’t support Analysis Services, Notification
Services, English Query, Data Transformation Services, or OLAP.
NOTE
The version of SQL Server Express bundled with Visual Web Developer does not
include support for Full-Text Search or Reporting Services. If you need these services,
you can download a version of SQL Server Express that supports Full-Text Search and
Reporting Services from the Microsoft website.
However, SQL Server Express does not have a Workload Governor. The performance of a
SQL Server Express database is never throttled. This means that you can use SQL Server
Express for small websites without worrying about performance limitations.
From the Library of Wow! eBook
ptg
370
CHAPTER 8 Overview of Data Access
Finally, like the full version of SQL Server 2008, SQL Server Express supports the Common
Language Runtime. In other words, you can use C# or Visual Basic .NET to create stored
procedures, triggers, user-defined functions, and user-defined types.
SQL Server 2008 Express Management Tools
You can use three tools to create new database objects when using SQL Server 2008
Express. You can use Database Explorer in Visual Web Developer, Microsoft SQL Server

Management Studio Express, and SQLCMD utility.
The Database Explorer included in Visual Web Developer provides you with a user-friendly
interface for working with database objects (see Figure 8.13). I assume that you use the
Database Explorer for the database samples in this book.
FIGURE 8.13 The Database Explorer window in Visual Web Developer.
Alternatively, you can use Microsoft SQL Server Management Studio Express. You can
download Management Studio from the Microsoft site at
sqlserver/2008/en/us/express.aspx. This tool enables you to browse database objects and
execute SQL queries (see Figure 8.14).
Finally, SQL Server 2008 Express includes a command-line tool named SQLCMD. You can
use the SQLCMD tool to fire off SQL queries from the Command Prompt (see Figure 8.15).
This alternative is the most painful, but it works.
You use SQLCMD by opening a command prompt and connecting to your database with
the following command:
SQLCMD -S .\SQLExpress
From the Library of Wow! eBook
ptg
371
Overview of SQL Server 2008 Express
8
Next, you can enter SQL statements at the command prompt. The statements are not
executed until you type GO. You can get help using SQLCMD by typing :HELP after starting
the tool. When you finish using the tool, type EXIT to quit.
Server Databases Versus Local Databases
You can create two different types of databases with SQL Server Express: Server and Local.
FIGURE 8.15 Executing a SQL query with SQLCMD.
FIGURE 8.14 Using the Microsoft SQL Server Management Studio Express.
From the Library of Wow! eBook
ptg
372

CHAPTER 8 Overview of Data Access
By default, when you install SQL Server 2008 Express, a named instance of the server is
created with the name SQLExpress. You can create a new Server database by connecting to
the named instance and adding a new database.
NOTE
To connect to SQL Ser ver 2005 Express from a page ser ved from Internet Infor m a t i o n
Server, you must add either the ASPNET account (in the case of Windows XP) or the
Network Service account (for Windows 2003, Vista, and 7) to SQL Server Express.
These accounts are created for you automatically when you install the QuickStart
Tutorials included with the .NET Framework SDK Documentation.
If you own Visual Studio 2010, you can create a new Server database directly from the
Server Explorer window. Simply right-click the Data Connections node in the Server
Explorer window, and select Create New SQL Server Database.
Unfortunately, you can’t use Visual Web Developer to create a new Server database. This
option is grayed out. If you need to create a new Server database, and you don’t have the
full version of Visual Studio, you need to use Microsoft SQL Server Management Studio
Express as discussed in the previous section (see Figure 8.16).
FIGURE 8.16 Creating a new Server database.
When you create a Server database, the database is attached and available to any applica-
tion running on the server. You can connect to the database easily from any ASP.NET
application.
From the Library of Wow! eBook
ptg
373
Overview of SQL Server 2008 Express
8
For example, the following connection string enables you to connect to a Server database
named MyData:
Data Source=.\SQLExpress;Initial Catalog=MyData;Integrated Security=True
NOTE

There are many different ways to write a connection string that does the same thing.
For example, instead of the Data Source parameter, you can use the Server parameter,
and instead of the Initial Catalog parameter, you can use the Database parameter. For
a list of all the keywords supported when connecting to a Microsoft SQL Server data-
base, see the SqlConnection.ConnectionString entry in the Microsoft .NET
Framework SDK documentation.
The other option is to create a Local database instead of a Server database. When you
create a Local database, you create the database in your project. The database file is added
to the App_Data folder in your website.
Here are the steps for creating a Local database in Visual Web Developer:
1. Open the Add New Item dialog box by selecting the website, Add New Item (see
Figure 8.17).
2. Select Sql Database and provide the database with a name (for example,
MyLocalData.mdf).
3. Click Add.
FIGURE 8.17 Creating a new Local database.
From the Library of Wow! eBook

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×