分享
 
 
 

ASP.NET2.0数据库入门之SqlDataSource

王朝asp·作者佚名  2008-05-21
窄屏简体版  字體: |||超大  

当使用SqlDataSource控件选择数据时,可以从两个属性:ConnectionString和SelectCommand开始,如下所示:

<asp:SqlDataSource ID="MySourceControlName" Runat="server"ConnectionString="Server=MyServer ;Database=Northwind"SelectCommand=" SELECT Fieldl, [Field With Space] FROM MyTable"></asp:SglDataSource>

当使用Windows认证时,可以添加两个认证数据。

<asp:SqlDataSource ID="MySourceControlName" Runat="server"ConnectionString="Server=MyServer ;User ID=MyID;Password=Mypass;Database=Northwind"SelectCommand=" SELECT Field1, [Field With Space] FROM MyTable"></asp:SqlDataSource>

第桓鍪乔懊嫣致酃?牧?幼址???诙?鍪怯electCommand,用来确定将从SQL Server数据库中提取什么信息。在SelectCommand中,可以使用任何符合语法的SQL SELECT语句,包括在上一章或者附录A中讨论的语句。很多SQL Server管理员都不会允许用户直接访问表。数据库管理员将会在SPROC上创建一些受限制的许可。或者,创建表的视图用来提供表的一部分数据或者对表中可以修改的数据进行限制。连接至视图的语法如下:

SelectCommand="SELECT * from MyView">

如果表、查询、SPROC或者视图的名称中有空格字符,则应当使用方括号将整个名称包含起来,如下所示:

SelectCommand="SELECT * from [My View] "

您可能已经注意到了GridView中的Filter属性并且想知道它与在数据源SelectCommand中使用WHERE子句之间有何不同。筛选只用于某些缓冲情况,我们将会在第15章中介绍。

有了连接字符串和SelectCommand,就可以创建从SQL Server使用数据的页面了。

试一试#1—— SqlDataSource简单示例

在本练习中,应该以网格(表)格式从Northwind的SQL版本显示产品的GridView。可以以添加DataSource控件和数据绑定控件的技术开始,这样就能够创建最简单的源代码。然后将会使用一种更快速的开发技术(拖放列名称)。

(1) 请确认已经安装了SSE(如第1章所述),包括样本数据库Northwind。本练习还将涉及到SQL Server或者MSDE。

(2) 创建文件夹ch03,在其中创建一个名为TIO-1-SqlSimple-1.ASPX的文件。通过Menu:View|Toolbox(Ctrl+Alt+X)显示工具箱。请注意工具箱有一个可以展开的Data区域。

(3) 在Design视图中,从工具箱的Data区域中拖放一个SqlDataSource控件至页面。在便捷任务面板上,将数据源配置为新的连接。输入服务器名称(local)SQLExpress并使用Windows NT认证。选择名为Northwind的数据库并测试连接。单击OK结束。您将会自动返回至Data Source Configuration对话框,单击Next。对本例来说,不需要在配置文件中保存连接字符串;单击Next。选择“Specify columns from a table”并选择表名Products。在Columns列表中,单击ID、Name和Unit Price。单击Next和Test Query,然后单击Finish。这样就完成添加DataSource控件了。

(4) 添加GridView数据绑定控件。在便捷任务面板中,选择SqlDataSource,然后关闭便捷任务面板。这样就创建了数据绑定控件。保存并运行页面,页面如下:

<%@ Page Language="VB" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN""http://www.w3.org/TR/xhtmlll/DTD/xhtmlll.dtd"><script runat="server"></script><html xmlns="http://www.w3.org/1999/xhtml" ><head runat="server"><title>Ch03-Tio#l-SqlSimple-verl</title></head><body><h2>Chapter 3 TIO #1 SqlSimple verl</h2><form id="forml" runat="server"><div><asp:SqlDataSource ID="SqlDataSourcel" Runat="server"ProviderName="System.Data.SqlClient"ConnectionString="Server=(local)SQLExpress;Integrated Security=True;Database=Northwind;Persist Security Info=True"SelectCommand="SELECT [ProductID], [ProductName], [UnitPrice] FROM[Products]"></asp:SqlDataSource><asp:GridView ID="GridViewl" Runat="server"DataSourceID="SqlDataSourcel"DataKeyNames="ProductID"AutoGenerateColumns="False"><Columns><asp:BoundField ReadOnly="True" HeaderText="ProductID"InsertVisible="False" DataField="ProductID"SortExpression=" ProductID" ></asp: BoundField><asp:BoundField HeaderText="ProductName"DataField="ProductName"SortExpression="ProductName"></asp:BoundField><asp:BoundField HeaderText="UnitPrice" DataField="UnitPrice"SortExpression="UnitPrice"></asp:BoundField></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:BoundFieldHeaderText="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。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有