</Columns>
</asp:GridView>
</div>
</form>
</body>
</html>
(5) 关闭浏览器并查看一下Source视图中的页面。请注意,在页面的<form>中间有两个控件。SqlDataSource有ConnectionString和SelectCommand。GridView具有一些与SqlDataSource控件的字段绑定的列。
(6) 现在可以使用快速的技术添加第二个表了。将页面保存为TIO-1-SqlSim- ple-2.ASPX。切换至Design视图。在菜单中,依次单击View->Database Explorer。在Data Connections上单击右键并选择Add Connection。与上一步骤一样,您将面对连接属性对话框。输入服务器名称(local)\SQLExpress,使用Windows NT安全,并选择名为Northwind的数据库。测试连接并单击OK以关闭对话框。请注意在数据库浏览窗口中的新项目。
(7) 展开新的(local)\SqlExpress.Northwind.dbo连接,然后展开它的表。展开Categories表。使用Ctrl+单击的方式选择CategoryID、CategoryName和Description字段并将它们拖放至页面的底部。虽然便捷任务面板将为您打开新的GridView,但是可以关闭它。键入F5来运行页面。向下滚动欣赏您仅仅通过从Category表拖放列名就创建出来的页面。以下是版本2的其他源代码。请注意,当拖放列名的时候,您会得到一大组代码,包括在SqlDataSource控件中的一系列参数。
...
<asp:SqlDataSource ID="SqlDataSourcel" Runat="server"
<asp:GridView ID="GridViewl" Runat="server"
...
<asp:GridView ID="GridView2" Runat="server"
DataSourceID="SqlDataSource2" DataKeyNames="CategoryID"
AutoGenerateColumns="False"
EmptyDataText="There are no data records to display.">
<Columns>
<asp:BoundField ReadOnly="True" HeaderText="CategoryID"
DataField="CategoryID"
SortExpression="Category ID"></asp:BoundField>
<asp:BoundField HeaderText="CategoryName"DataField="CategoryName"
SortExpression="CategoryMame"></asp:BoundField>
<asp:BoundField
HeaderText="Description" DataField="Description"
SortExpression="Description"></asp:BoundField>
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource2" Runat="server"
ProviderName="<%$ ConnectionStrings:AppConnectionString2 . ProviderName %>"
ConnectionString="<%$ ConnectionStrings:AppConnectionString2 %>"
SelectCommand="SELECT[CategoryID],[CategoryName] ,[Desc- ription] FROM
[Categories]"
UpdateCommand="UPDATE[Categories]SET[CategoryName]=@CategoryName,
[Description] = @Description WHERE[CategoryID]=@original_CategoryID"
InsertCommand="INSERT INTO[Categories]([CategoryName],[Description]
VALUES (@CategoryName, @Description)"
DeleteCommand="DELETE FROM [Categories] WHERE [CategoryID] =
@original_CategoryID">
<DeleteParameters>
<asp:Parameter Type="Int32" Name="CategoryID"></asp:Parameter>
</DeleteParameters>
<InsertParameters>
<asp:Parameter Type="String"Name="CategoryName"></asp:Parameter>
<asp: Parameter Type="String" Name="Description"></asp: Parameter>
</InsertParameters>
<UpdateParameters>
<asp:Parameter Type="String" Name="CategoryName"></asp:Parameter>
<asp:ParameterType="String" Name="Description"></asp:Parameter>
<asp:Parameter Type="Int32"Name="CategoryID"></asp:Parameter>
</UpdateParameters>
</asp:SqlDataSource>
示例说明#1—— SqlDataSource简单示例
对语法来说,SqlDataSource与我们在第2章所使用的AccessDataSource相差无几。最大的差别就是连接字符串的使用(而不是指定数据文件)。两者相似的意义是对一种控件的知识可以帮助了解其他的数据源控件。
连接字符串向SqlDataSource传递了三个参数:
● SQL Server的名称
● 将要使用的数据库的名称或者视图的名称
● 指示在随后的SSE登录中持续使用Windows认证
不论是对表还是视图来说,如果其名称中包含空格,就必须将名称包括在方括号之中。第二个参数提供了一个符合标准SQL语法的选择命令。
当我们转移至版本2时,使用了VWD的完全功能。通过添加连接至Database Explorer,我们让VWD明白数据库的模式。VWD将会显示表和列名。在拖放列名至页面时,VWD将创建包含了支持的DataSource控件在内的GridView。
