|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
其实Java之所以在曾经独步天下,就是因为他的跨平台、安全性,这两方面,效率可不是Java的强项,反而是他最短的一块挡板,虽然net总是用理论证明比.NET快。asp.net|数据|数据库<Pstyle="TEXT-INDENT:2em">VWD2005中包括了SQLServer2005ExpressEdition,它是SQLServer2005的一个收费版本,它的方针用户是那些但愿用复杂的数据库办理计划来创建使用程序的非专业的或狂热的开辟者。因为SQLServerExpress撑持完全的SQLServer编程模子,比方SQLCLR、T-SQL、存储历程、视图、触发器和XML数据范例,你可使用SQLServerExpress来懂得这些手艺,而且确保本人的使用程序能够运转在更高条理的平台上(比方SQLServer企业版)。SQLServerExpress很简单下载和安装(它小于36MB),VisualStudio2005和VisualWebDeveloper2005也包含了它。<Pstyle="TEXT-INDENT:2em">VisualStudio包括了用于数据库办理的工具,比方数据库扫瞄器(DatabaseExplorer)和查询机关器(QueryBuilder),你可使用它们来办理SQLServerExpress数据库。VisualStudio还撑持一种新的基于文件的数据库,用于创建SQLServerExpress数据库并把它作为项目标一部分。同时,VisualStudio2005和SQLServer2005Express为创建和部署数据驱动的Web使用程序供应了完全的办理计划,包含上面一些特征:<Pstyle="TEXT-INDENT:2em">◆数据库项目数据项<Pstyle="TEXT-INDENT:2em">◆当地数据库毗连<Pstyle="TEXT-INDENT:2em">◆数据库扫瞄器办理<Pstyle="TEXT-INDENT:2em">◆绝对路径毗连字符串<Pstyle="TEXT-INDENT:2em">◆XCopy部署撑持<Pstyle="TEXT-INDENT:2em">◆集成的调试撑持<Pstyle="TEXT-INDENT:2em">本文形貌VisualStudio2005中的基于文件的数据库体例和计划器怎样创建和利用这些数据库。<Pstyle="TEXT-INDENT:2em">VisualWebDeveloper和数据<Pstyle="TEXT-INDENT:2em">VisualWebDeveloper为Web使用程序利用数据库供应了大批的工具。你可使用数据库扫瞄器容易地毗连到数据库并创建或检察数据库干系图或纲目(schema)。你还可使用查询机关器对话框和查询了局表格来查询数据库和举行数据添补。创建新数据库(利用当地文件)也是作为项目数据项供应的。<Pstyle="TEXT-INDENT:2em">一旦在VisualWebDeveloper中毗连了数据库,就能够把数据库表间接拖放到页面上,以创建数据绑定的GridView控件。VisualWebDeveloper主动地创建一个联系关系的数据源控件,并依据数据表来设置它的选择、更新、拔出和删除操纵。这类快速操纵为你节俭了手动创建数据源所需的大批事情,你也能够容易地依据必要,用合适的数据绑定控件取代GridView。<Pstyle="TEXT-INDENT:2em">当地和服务器数据库<Pstyle="TEXT-INDENT:2em">你大概已熟习了基于服务器的数据库和毗连字符串。在这类情形下,数据库服务器(比方SQLServer2005)把数据库称号与服务器所保护的数据库文件相干联。你能够经由过程指定服务器称号、数据库称号和凭据来毗连到基于服务器的数据库,比方:<Pstyle="TEXT-INDENT:2em">"server=(local)SQLExpress;database=Pubs;IntegratedSecurity=true"<Pstyle="TEXT-INDENT:2em">可是,VisualStudio2005还撑持当地数据库的观点,它是增加到以后Web使用程序的App_Data目次中的一个文件。在App_Data目次中存储数据文件是平安的,由于这个目次中的内容永久不会呼应用户的哀求。这个目次也是存储XML文件和别的数据存储的保举地位。当地的SQLServerExpress数据库带有.MDF扩大名(比方"MyDatabase.MDF"),它是SQLServer撑持的尺度文件格局。当毗连到服务器的时分,数据库另有一个联系关系的日记文件(比方"MyDatabase_log.LDF")。数据库文件和日记文件的地位必需在一同。<Pstyle="TEXT-INDENT:2em">我们能够经由过程利用绝对路径毗连字符串把当地文件数据库主动地附加到SQLServerExpress。绝对路径确保了使用程序迁徙就任何别的中央的时分都不会中止数据库毗连。Web使用程序中的绝对路径毗连字符串以下所示:<Pstyle="TEXT-INDENT:2em">- "server=(local)SQLExpress;AttachDbFileName=|DataDirectory|MyDatabase.mdf;IntegratedSecurity=true;UserInstance=true"
复制代码 <Pstyle="TEXT-INDENT:2em">下面的毗连字符串另有两个分外的属性。AttachDbFileName属性指定毗连翻开的时分静态附加到服务器上的数据库文件的地位。只管这个属性能够承受数据库的完全路径(比方利用|DataDirectory|语法),可是在运转时这个路径会被使用程序的App_Data目次所取代。这也包管了使用程序迁徙到别的地位的时分毗连不会中止。第二个属性是UserInstance=true,它指定SQLServerExpress附加数据库的体例。在这类情形下,SQLServerExpress为了把数据库附加到新的实例,创建一个新的历程,在翻开毗连的用户身份下运转。在ASP.NET使用程序中,这个用户是当地的ASPNET帐号或默许的NetworkService,这依附于操纵体系。为了平安地附加非体系办理员帐号(比方ASP.NET帐号)供应的数据库文件,创建一个自力的SQLServer用户实例是需要的。<Pstyle="TEXT-INDENT:2em">请注重:因为在默许情形下,一切的ASP.NET使用程序运转在统一个历程下,因而一切的使用程序会把当地数据库附加到统一个SQLServerExpress实例。这意味着不论使用程序最后附加的数据库是哪个,一切的使用程序对附加到这个实例的一切数据库都具有不异的会见权限。为了断绝分歧的使用程序,你必需让每一个使用程序运转在分歧的事情历程或使用程序池(在IIS6中)中。因为这个缘故原由,当地SQLServer数据库次要是为了便利开辟,而不是用于取代共享主机情况下的基于服务器的数据库。别的一个要点是,不同意两个用户同时毗连到一个当地数据库。在VisualStudio中计划使用程序的时分,计划器主动地开释毗连,以包管VisualStudio和ASP.NET可以共享数据库文件(比方在计划器中调试运转中的使用程序)。
<Pstyle="TEXT-INDENT:2em">创建当地数据库<Pstyle="TEXT-INDENT:2em">你能够容易地在VisualStudio的Web使用程序项目中创建当地数据库。因为VisualStudio安装了SQLServerExpress,你可使用上面的步骤来创建一个当地数据库、增加数据表并添补数据。<Pstyle="TEXT-INDENT:2em">创建当地数据库:<Pstyle="TEXT-INDENT:2em">1.右键点击办理计划扫瞄器并选择"增加新项…"选项。<Pstyle="TEXT-INDENT:2em">2.选择"SQL数据库"项并指定一个文件名,比方"Database.mdf"。<Pstyle="TEXT-INDENT:2em">3.VisualStudio提醒把这个文件增加到App_Data目次中。点击"是"。<Pstyle="TEXT-INDENT:2em">4.VisualStudio增加这个文件并主动地利用数据库扫瞄器毗连到这个数据库。<Pstyle="TEXT-INDENT:2em">给当地数据库增加数据表:<Pstyle="TEXT-INDENT:2em">1.右键点击数据库扫瞄器中的Tables(数据表)节点并选择"增加新表"选项。<Pstyle="TEXT-INDENT:2em">2.输出数据库中列的称号和范例,能够选择在属性表格中设置别的一些列属性。为了创建示例Contacts数据库,请遵守上面的步骤。<Pstyle="TEXT-INDENT:2em">3.把第一列的称号设置为"ContactID",数据范例设置为"int"。作废"同意空"反省框的选中形态。<Pstyle="TEXT-INDENT:2em">4.右键点击ContactID列右边的灰色方块并选择"设置为主健"选项。<Pstyle="TEXT-INDENT:2em">5.鄙人方的"列属性"表格中,睁开"标识符标准"节点并把"是不是为标识符"设置为"是"。<Pstyle="TEXT-INDENT:2em">6.把第二列的称号设置为"ContactName",数据范例设置为"varchar(50)"。让"同意空"反省框坚持选中形态。<Pstyle="TEXT-INDENT:2em">7.按下Ctrl-S保留表并把表名设置为"Contacts"。点击OK保留表。<Pstyle="TEXT-INDENT:2em">8.封闭表界说窗口。<Pstyle="TEXT-INDENT:2em">用数据添补表:<Pstyle="TEXT-INDENT:2em">1.右键点击数据库扫瞄器中的数据表节点(比方"Contacts")并选择"显现表数据"选项。<Pstyle="TEXT-INDENT:2em">2.在显现的表格中输出数据表行的数据。假如利用下面的Contacts示例,你能够在ContactName列中输出值,数据库会主动地天生响应的ContactID值。<Pstyle="TEXT-INDENT:2em">3.封闭表格窗口。<Pstyle="TEXT-INDENT:2em">绑定到当地数据库<Pstyle="TEXT-INDENT:2em">为了绑定到当地数据库,你必要利用绝对路径毗连来设置ASP.NET数据源控件,以毗连到该文件。要把一个SQLServerExpress数据库复杂地绑定到SqlDataSource和GridView控件,可使用上面的步骤:<Pstyle="TEXT-INDENT:2em">1.双击办理计划扫瞄器中的一个页面(比方"Default.aspx")。VisualStudio会翻开这个页面。<Pstyle="TEXT-INDENT:2em">2.选择页面窗口底部的"计划视图"标签切换到计划视图。<Pstyle="TEXT-INDENT:2em">3.双击办理计划扫瞄器中的数据库文件(比方"Database.mdf")。VisualStudio为毗连翻开数据库扫瞄器。<Pstyle="TEXT-INDENT:2em">4.睁开Tables节点以显现数据库中的表。<Pstyle="TEXT-INDENT:2em">5.把数据库扫瞄器中的表拖放到计划视图中的谁人翻开的页面中。VisualStudio创建一个绑定到SqlDataSource控件的GridView。<Pstyle="TEXT-INDENT:2em">6.睁开GridView控件的"智能事件面板",选平分页、排序和编纂。<Pstyle="TEXT-INDENT:2em">7.按Ctrl-F5运转页面(没有调试)。<Pstyle="TEXT-INDENT:2em">上面的例子显现了一个毗连到当地数据库的GridView和SqlDataSource控件。为了运转这个示例,ASP.NET历程帐号必需具有~/App_Data目次中的MDF和LDF文件的读/写权限。这个权限设置历程以下:<Pstyle="TEXT-INDENT:2em">1.在Windows扫瞄器当选中~/App_Data/Database.MDF文件并选择"属性"。<Pstyle="TEXT-INDENT:2em">2.选择"平安"标签并点击"增加"。<Pstyle="TEXT-INDENT:2em">3.点击"地位…",选择你的盘算机名(在列表顶部),并点击"断定"。<Pstyle="TEXT-INDENT:2em">4.在工具称号文本区,输出ASP.NET历程帐号的称号。在默许情形下,IIS6.0中的称号是"NetworkService",IIS5.x中的是"ASPNET"。<Pstyle="TEXT-INDENT:2em">5.在"同意"列当选中"读"和"写"并点击"断定"。<Pstyle="TEXT-INDENT:2em">6.假如App_Data目次中存在LDF文件,就必要反复上述步骤,设置LDF文件的属性。<Pstyle="TEXT-INDENT:2em">假如你利用VisualStudio在当地盘算机上创建使用程序,那末在默许情形下,你是具有App_Data目次的上述权限的。假如某个数据库文件在被附加上后必要变动权限,你必需在新权限失效之前起首封闭使用程序域(applicationdomain)。<Pstyle="TEXT-INDENT:2em">- <asp:GridViewAllowSorting="True"AutoGenerateColumns="False"DataKeyNames="ContactID"DataSourceID="SqlDataSource1"ID="GridView1"runat="server"><Columns><asp:BoundFieldDataField="ContactID"HeaderText="ID"ReadOnly="True"SortExpression="ID"/><asp:BoundFieldDataField="ContactName"HeaderText="Name"SortExpression="Name"/></Columns></asp:GridView><asp:SqlDataSourceConnectionString="<%$ConnectionStrings:ContactsDatabase%>"ID="SqlDataSource1"runat="server"SelectCommand="SELECT[ContactID],[ContactName]FROM[Contacts]"OnSelected="SqlDataSource1_Selected"></asp:SqlDataSource>
复制代码 <Pstyle="TEXT-INDENT:2em">部署当地数据库<Pstyle="TEXT-INDENT:2em">当地数据库文件的上风之一在于它能够陪伴使用程序、作为使用程序的一部分迁徙到别的地位或别的盘算机(固然该盘算机也必需运转SQLServerExpress)。在挪动数据库的时分,该文件必需处于排除锁定(unlocked)形态。在计划器或使用程序毗连到数据库的时分,文件会处于锁定形态。为懂得除锁定,数据库的一切举动毗连都必需被封闭。你可使用上面的手艺来封闭数据库的毗连:<Pstyle="TEXT-INDENT:2em">假如ASP.NET已翻开了毗连,你能够经由过程给Web使用程序根目次增加一个"app_offline.htm"文件来封闭使用程序域。它的感化就是封闭使用程序域(而不是历程)并把一切的使用程序哀求重定向(redirect)到这个文件(前往404呼应代码)。假如要从头启动使用程序,只必要删除这个文件。请注重,复杂地在页面代码中的封闭毗连是不会开释文件锁的,由于在默许情形下,ADO.NET毗连池会保存举动的毗连。<Pstyle="TEXT-INDENT:2em">VisualStudio供应了CopyWeb特征,它可使用xcopy、FTP或FrontPage服务器扩大把使用程叙文件从事情目次复制到方针服务器。方针盘算机能够是当地的或远程的。从VisualStudio菜单条当选择"Web站点>复制Web站点…"就能够挪用CopyWeb特征了。只管你可使用CopyWeb或复杂的xcopy或FTP操纵来挪动数据库,可是为了让使用程序持续事情,方针盘算机必需运转SQLServerExpress(在统一个实例名下)。后面我们提到,因为ASP.NET运转的一切使用程序都毗连到统一个SQL实例,以是方针盘算机上的一切使用程序必需相互信托。假如一个使用程序不克不及看到别的使用程序的数据库,那末我们保举用基于服务器的办法(利用SQL认证或别的分别手艺)取代当地数据库。假如你把SQLServerExpress作为开辟工具,那末你必要把SQLServerExpress数据库内容作为产物部署的一部分复制给客户。
在经过全球个人PC市场占有90%的微软对asp.net不断优化与整合后,asp.net与微软自身平台的动用上更加的高效,加上asp.net在应用上非常容易上手,相信asp.net仍会是最多客户选用的脚本语言,并会在未来几年继续领跑。 |
|