飘飘悠悠 发表于 2015-1-16 22:42:19

ASP.NET网页编程之ASP.NET2.0数据库进门之SqlDataSource

兄弟们,想来你们都看过了昨天的比赛了。我现在的痛苦状跟当时应该差不多。希望本版.net老师不吝赐教,为小弟这一批迷途的羊羔指一条阳光之道!您也知道:学习技术如果只有一个人摸索,那是一件多么痛苦的事情!还有,如果万辛能得名师或长者指点,那又是多么一件幸福和快乐的事情!asp.net|sql|数据|数据库  当利用SqlDataSource控件选择数据时,能够从两个属性:ConnectionString和SelectCommand入手下手,以下所示:

<asp:SqlDataSourceID="MySourceControlName"Runat="server"
ConnectionString="Server=MyServer;
Database=Northwind"
SelectCommand="SELECTFieldl,FROMMyTable">
</asp:SglDataSource>
  当利用Windows认证时,能够增加两个认证数据。

<asp:SqlDataSourceID="MySourceControlName"Runat="server"
ConnectionString="
Server=MyServer;
UserID=MyID;
Password=Mypass;
Database=Northwind"
SelectCommand="SELECTField1,FROMMyTable">
</asp:SqlDataSource>
  第一个是后面会商过的毗连字符串,第二个是SelectCommand,用来断定将从SQLServer数据库中提取甚么信息。在SelectCommand中,可使用任何切合语法的SQLSELECT语句,包含在上一章大概附录A中会商的语句。良多SQLServer办理员都不会同意用户间接会见表。数据库办理员将会在SPROC上创立一些受限定的允许。大概,创立表的视图用来供应表的一部分数据大概对表中能够修正的数据举行限定。毗连至视图的语法以下:

SelectCommand="SELECT*fromMyView">
  假如表、查询、SPROC大概视图的称号中有空格字符,则应该利用方括号将全部称号包括起来,以下所示:

SelectCommand="SELECT*from"
  您大概已注重到了GridView中的Filter属性而且想晓得它与在数据源SelectCommand中利用WHERE子句之间有何分歧。选择只用于某些缓冲情形,我们将会在第15章中先容。

  有了毗连字符串和SelectCommand,就能够创立从SQLServer利用数据的页面了。

  试一试#1――SqlDataSource复杂示例

  在本实习中,应当以网格(表)格局从Northwind的SQL版本显现产物的GridView。能够以增加DataSource控件和数据绑定控件的手艺入手下手,如许就可以够创立最复杂的源代码。然后将会利用一种更疾速的开辟手艺(拖放列称号)。

  (1)请确认已安装了SSE(如第1章所述),包含样本数据库Northwind。本实习还将触及到SQLServer大概MSDE。

  (2)创立文件夹ch03,在个中创立一个名为TIO-1-SqlSimple-1.ASPX的文件。经由过程Menu:View|Toolbox(Ctrl+Alt+X)显现工具箱。请注重工具箱有一个能够睁开的Data地区。

  (3)在Design视图中,从工具箱的Data地区中拖放一个SqlDataSource控件至页面。在便利义务面板上,将数据源设置为新的毗连。输出服务器称号(local)SQLExpress并利用WindowsNT认证。选择名为Northwind的数据库并测试毗连。单击OK停止。您将会主动前往至DataSourceConfiguration对话框,单击Next。对本例来讲,不必要在设置文件中保留毗连字符串;单击Next。选择“Specifycolumnsfromatable”并选择表名Products。在Columns列表中,单击ID、Name和UnitPrice。单击Next和TestQuery,然后单击Finish。如许就完成增加DataSource控件了。

  (4)增加GridView数据绑定控件。在便利义务面板中,选择SqlDataSource,然后封闭便利义务面板。如许就创立了数据绑定控件。保留并运转页面,页面以下:

<%@PageLanguage="VB"%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.1//EN"
"http://www.w3.org/TR/xhtmlll/DTD/xhtmlll.dtd">
<scriptrunat="server">
</script>
<htmlxmlns="http://www.w3.org/1999/xhtml">
<headrunat="server">
<title>Ch03-Tio#l-SqlSimple-verl</title>
</head>
<body>
<h2>
Chapter3TIO#1SqlSimpleverl
</h2>
<formid="forml"runat="server">
<div>
<asp:SqlDataSourceID="SqlDataSourcel"Runat="server"
ProviderName="System.Data.SqlClient"
ConnectionString="Server=(local)SQLExpress;
IntegratedSecurity=True;
Database=Northwind;
PersistSecurityInfo=True"
SelectCommand="SELECT,,FROM">
</asp:SqlDataSource>
<asp:GridViewID="GridViewl"Runat="server"
DataSourceID="SqlDataSourcel"
DataKeyNames="ProductID"
AutoGenerateColumns="False">
<Columns>
<asp:BoundFieldReadOnly="True"HeaderText="ProductID"
InsertVisible="False"DataField="ProductID"
SortExpression="ProductID"></asp:BoundField>
<asp:BoundFieldHeaderText="ProductName"DataField="ProductName"
SortExpression="ProductName"></asp:BoundField>
<asp:BoundFieldHeaderText="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->DatabaseExplorer。在DataConnections上单击右键并选择AddConnection。与上一步骤一样,您将面临毗连属性对话框。输出服务器称号(local)SQLExpress,利用WindowsNT平安,并选择名为Northwind的数据库。测试毗连并单击OK以封闭对话框。请注重在数据库扫瞄窗口中的新项目。

  (7)睁开新的(local)SqlExpress.Northwind.dbo毗连,然后睁开它的表。睁开Categories表。利用Ctrl+单击的体例选择CategoryID、CategoryName和Description字段并将它们拖放至页面的底部。固然便利义务面板将为您翻开新的GridView,可是能够封闭它。键进F5来运转页面。向下转动浏览您仅仅经由过程从Category表拖放列名就创立出来的页面。以下是版本2的其他源代码。请注重,当拖放列名的时分,您会失掉一年夜组代码,包含在SqlDataSource控件中的一系列参数。

...

<asp:SqlDataSourceID="SqlDataSourcel"Runat="server"
<asp:GridViewID="GridViewl"Runat="server"
...

<asp:GridViewID="GridView2"Runat="server"
DataSourceID="SqlDataSource2"DataKeyNames="CategoryID"
AutoGenerateColumns="False"
EmptyDataText="Therearenodatarecordstodisplay.">
<Columns>
<asp:BoundFieldReadOnly="True"HeaderText="CategoryID"
DataField="CategoryID"
SortExpression="CategoryID"></asp:BoundField>
<asp:BoundFieldHeaderText="CategoryName"DataField="CategoryName"
SortExpression="CategoryMame"></asp:BoundField>
<asp:BoundField
HeaderText="Description"DataField="Description"
SortExpression="Description"></asp:BoundField>
</Columns>
</asp:GridView>
<asp:SqlDataSourceID="SqlDataSource2"Runat="server"
ProviderName="<%$ConnectionStrings:AppConnectionString2.ProviderName%>"
ConnectionString="<%$ConnectionStrings:AppConnectionString2%>"
SelectCommand="SELECT,,FROM
"
UpdateCommand="UPDATESET=@CategoryName,
=@DescriptionWHERE=@original_CategoryID"
InsertCommand="INSERTINTO(,
VALUES(@CategoryName,@Description)"
DeleteCommand="DELETEFROMWHERE=
@original_CategoryID">
<DeleteParameters>
<asp:ParameterType="Int32"Name="CategoryID"></asp:Parameter>
</DeleteParameters>
<InsertParameters>
<asp:ParameterType="String"Name="CategoryName"></asp:Parameter>
<asp:ParameterType="String"Name="Description"></asp:Parameter>
</InsertParameters>
<UpdateParameters>
<asp:ParameterType="String"Name="CategoryName"></asp:Parameter>
<asp:ParameterType="String"Name="Description"></asp:Parameter>
<asp:ParameterType="Int32"Name="CategoryID"></asp:Parameter>
</UpdateParameters>
</asp:SqlDataSource>
  示例申明#1――SqlDataSource复杂示例

  对语法来讲,SqlDataSource与我们在第2章所利用的AccessDataSource相差无几。最年夜的不同就是毗连字符串的利用(而不是指定命据文件)。二者类似的意义是对一种控件的常识能够匡助懂得其他的数据源控件。

  毗连字符串向SqlDataSource传送了三个参数:

  ●SQLServer的称号

  ●将要利用的数据库的称号大概视图的称号
  
  ●唆使在随后的SSE登录中延续利用Windows认证

  不管是对表仍是视图来讲,假如其称号中包括空格,就必需将称号包含在方括号当中。第二个参数供应了一个切合尺度SQL语法的选择命令。

  当我们转移至版本2时,利用了VWD的完整功效。经由过程增加毗连至DatabaseExplorer,我们让VWD分明数据库的形式。VWD将会显现表和列名。在拖放列名至页面时,VWD将创立包括了撑持的DataSource控件在内的GridView。计算机发展到这个时候,很多技术日益成熟,想学好一种技术都是不容易的,当你学会用的时候你对它的很多原理可能很不了解)

山那边是海 发表于 2015-1-19 21:20:36

目前在微软的.net战略中新推出的ASP.net借鉴了Java技术的优点,使用CSharp(C#)语言作为ASP.net的推荐语言,同时改进了以前ASP的安全性差等缺点。但是,使用ASP/ASP.net仍有一定的局限性,因为从某种角度来说它们只能在微软的WindowsNT/2000/XP+IIS的服务器平台上良好运行(虽然像ChilliSoft提供了在UNIX/Linux上运行ASP的解决方案.

精灵巫婆 发表于 2015-1-28 11:32:41

ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp)。

兰色精灵 发表于 2015-2-5 21:18:50

由于CGI程序每响应一个客户就会打开一个新的进程,所以,当有多个用户同时进行CGI请求的时候,服务器就会打开多个进程,这样就加重了服务器的负担,使服务器的执行效率变得越来越低下。

深爱那片海 发表于 2015-2-13 16:29:02

市场决定一切,我个人从经历上觉得两者至少在很长时间内还是要共存下去,包括C和C++,至少从找工作就看得出来,总不可能大家都像所谓的时尚一样,追捧一门语言并应用它。

若相依 发表于 2015-3-3 23:57:14

它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。

小女巫 发表于 2015-3-11 14:48:25

当然我们在选择Asp.net主机是,除了要考虑服务提供商在版本是否是实时更新以外,机房的环境和配置也是非常重要的,通常选择骨干网的机房,在速度和稳定性上会非常有保证。

小妖女 发表于 2015-3-19 00:26:05

碰到复杂点的问题都不知道能不能解决,现在有点实力的公司都选择自已在开源的基础上做开发。但没听说过有人在IIS上做改进的,windows、sqlserver集群方面的应用也很少见。

透明 发表于 2015-3-26 22:22:06

关于ASP.NET功能上,ASP.NET比微软以前的ASP(96年出现)有更强大的library,更好的稳定性。ASP.NET可以使用.NETFramework中所有组件(也就是说.NET能实现的,ASP.NET一样能实现)。
页: [1]
查看完整版本: ASP.NET网页编程之ASP.NET2.0数据库进门之SqlDataSource