none
ASP.NET 4.0 連接 SQL Server 2012 資料庫 RRS feed

  • 問題

  • 請問一下各位

    Visual Web Developer2010 要如何連接 SQL Server2012呢??

    因為想要自己做一個Login的登入程式

    但是照書本上面的方法連接資料庫都失敗

    請問,是否有一個連接的步驟呢??

    書本上是教導以下:

    1.ASPNET_REGSQL資料庫註冊工具(C:\Windows\Microsoft.NET\Framework\v4.0.30319 路徑下→ 執行ASPNET_REGSQL) 

    2.在IIS 7網站中→選擇「連接字串」→雙擊「ApplicationServices」→編輯輸入正確的資料庫連接字串即可

        (我並不是在網站中用的,我是在IIS管理員中點選連接字串,而且我也沒有「ApplicationServices」,我是自己加上去的)

        (書上說設定完成後,系統會將SQL Server的資料庫連接字串寫入到Web.config檔的<connectionStrings>區段中,但是我的卻沒有出現)

    3.ASP.NET網站管理工具,在Visual Web Developer2010裡面,在「方案總管」中使用「ASP.NET組態」進入「ASP.NET網站管理工具」,我點選提供者並進行測試,      結果他說

       「無法建立與資料庫的連接。 

         如果尚未建立 SQL Server 資料庫,請結束網站管理工具,然後使用 aspnet_regsql 命令列公用程式建立並設定資料庫,再回到這項工具以設定提供

        者。

    我搞不清楚要怎麼連接資料庫,SQL Server2012的資料庫我已經建立了,但是卻無法連接??

    請問這是什麼原因呢??

    是不是我的步驟有問題??

    謝謝

    2012年9月4日 下午 03:21

解答

  • 請參考底下這一篇:

    http://mvc.keigen.net/2012/02/aspnet-sql-server.html

    一般我是會用手動的方式去修改web.config內的設定。


    我的 ASP.NET MVC 自學日誌: http://mvc.keigen.net/

    • 已標示為解答 LarryChao 2012年9月5日 下午 12:24
    2012年9月5日 上午 12:32
  • 是的,其實不管是什麼種類的應用程式,Windows Form、ASP.NET、ASP.NET MVC……所有對資料庫的操作只是在於資料庫的連線設定而已。

    而在「web.config」裡設定也只是其中一種方式而已(寫在程式中,另外再查表、.........)重點是要讓應用程式知道資料庫主機在哪裡,

    連進資料庫的帳號密碼是什麼,要連哪一個資料庫等等訊息,這些訊息總是要有個地方查出。

     

    我的 ASP.NET MVC 自學日誌: http://mvc.keigen.net/


    • 已編輯 阿源哥哥 2012年9月5日 上午 11:53
    • 已標示為解答 LarryChao 2012年9月5日 下午 12:24
    2012年9月5日 上午 11:52

所有回覆

  • 請參考底下這一篇:

    http://mvc.keigen.net/2012/02/aspnet-sql-server.html

    一般我是會用手動的方式去修改web.config內的設定。


    我的 ASP.NET MVC 自學日誌: http://mvc.keigen.net/

    • 已標示為解答 LarryChao 2012年9月5日 下午 12:24
    2012年9月5日 上午 12:32
  • 1. 請先確定你的SQL Server服務有正常啟動,

    2. 使用SSMS是否能正常連線及使用。

    3. 重新執行aspnet_regsql指令。


    理直氣和,切記。

    http://blog.kkbruce.net

    2012年9月5日 上午 12:47
  • 您好,
    請問您是用Asp.NET的角色人員登入嗎?
    可以檢查一下Web.config的設定及資料庫的連接字串是否正確呢?
    可以看一下profile設定的connectionStringName對應是否正確哦!

    像小弟是設定「DashboardConnectionString」,

    以下是小弟之前測試MvcMusicStore的config給您參考一下,謝謝!

    <?xml version="1.0"?>
    <!--
      For more information on how to configure your ASP.NET application, please visit
      http://go.microsoft.com/fwlink/?LinkId=152368
      -->
    
    <configuration>
    	<appSettings>
    		<add key="webpages:Version" value="1.0.0.0"/>
    		<add key="ClientValidationEnabled" value="true"/>
    		<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
    	</appSettings>
    
    	<system.web>
    		<trace enabled="true" />
    		<membership defaultProvider="DashboardMembershipSqlProvider" userIsOnlineTimeWindow="15">
    			<providers>
    				<add name="DashboardMembershipSqlProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="DashboardConnectionString" enablePasswordRetrieval="true" enablePasswordReset="true" requiresQuestionAndAnswer="false" applicationName="Dashboard" requiresUniqueEmail="false" passwordFormat="Clear" minRequiredPasswordLength="1" passwordStrengthRegularExpression="" minRequiredNonalphanumericCharacters="0"/>
    			</providers>
    		</membership>
    		<roleManager enabled="true" cacheRolesInCookie="true" defaultProvider="DashboardRoleManagerSqlProvider" cookieName=".ASPXROLES" cookiePath="/" cookieTimeout="30" cookieRequireSSL="false" cookieSlidingExpiration="true" createPersistentCookie="false" cookieProtection="All">
    			<providers>
    				<add name="DashboardRoleManagerSqlProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="DashboardConnectionString" applicationName="Dashboard"/>
    			</providers>
    		</roleManager>
    		<profile enabled="true" automaticSaveEnabled="false" defaultProvider="DashboardProfileSqlProvider"  >
    			<providers>
    				<clear/>
    				<add name="DashboardProfileSqlProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="DashboardConnectionString" applicationName="Dashboard" description="SqlProfileProvider for Dashboard"/>
    			</providers>
    		</profile>
    		<compilation debug="true" targetFramework="4.0">
    			<assemblies>
    				<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    				<add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    				<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    				<add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    				<add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    			</assemblies>
    		</compilation>
    
    		<authentication mode="Forms">
    			<forms loginUrl="~/Account/LogOn" timeout="2880" />
    		</authentication>
    
    		<pages>
    			<namespaces>
    				<add namespace="System.Web.Helpers" />
    				<add namespace="System.Web.Mvc" />
    				<add namespace="System.Web.Mvc.Ajax" />
    				<add namespace="System.Web.Mvc.Html" />
    				<add namespace="System.Web.Routing" />
    				<add namespace="System.Web.WebPages"/>
    			</namespaces>
    		</pages>
    
    
    	</system.web>
    
    	<system.webServer>
    		<validation validateIntegratedModeConfiguration="false"/>
    		<modules runAllManagedModulesForAllRequests="true"/>
    	</system.webServer>
    
    	<runtime>
    		<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    			<dependentAssembly>
    				<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
    				<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
    			</dependentAssembly>
    		</assemblyBinding>
    	</runtime>
    	<connectionStrings>
    		<add name="MusicStoreEntities" connectionString="Data Source=(local);Initial Catalog=MVCMUSICSTORE;User ID=sa;Password=rainmaker;" providerName="System.Data.SqlClient" />
    		<add name="DashboardConnectionString" connectionString="Data Source=(local);Initial Catalog=ASPNETDB;User ID=sa;Password=rainmaker;" providerName="System.Data.SqlClient" />
    	</connectionStrings>
    </configuration>
    

    Setting Membership/Profile/Role provider's connection string at runtime...?

    Configuring an ASP.NET Membership provider instead of LocalSqlServer

    how to change ASP.NET Configuration tool connection string

    Profiles In ASP.NET 2.0


    以上說明若有錯誤請指教,謝謝。
    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    2012年9月5日 上午 01:44
  • 先用 SqlDataSource跑過一遍

         

    連上SQL Server以後,就會產生 "連結字串"(存放在Web.Config檔案內)

    有了這個連結字串,你那些流程才有效


    我的書 與 ASP.NET教學網站 http://www.dotblogs.com.tw/mis2000lab/

    2012年9月5日 上午 01:56
  • 了解,書上也是這樣教的

    但是,卻出現以下的圖片的訊息:

    而且在web.config上也沒出現<connectionStrings>的字樣

    所以,自行加上去就OK了嗎??

    自行加上去也可以與資料庫連接??

    謝謝

    2012年9月5日 上午 03:30
  • 您好,
    預設是接SQLExpress,可看machine.config中的設定!
    所以如果您是接SQL Server的話,就要設定config檔哦!
    小弟提供的link,有空請參考一下哦!

    以上說明若有錯誤請指教,謝謝。
    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    2012年9月5日 上午 03:33
  • 不太清楚您說的正常啟動是什麼意思

    不過我的SQL Server啟動的時候都沒有問題,沒有出現錯誤的字樣

    而您說的SSMS是指"SQL Server Management Studio"嗎??

    若是的話我的SSMS是可以正常啟動和連線的

    aspnet_regsql指令我有執行過兩次,不知道會不會有問題??

    謝謝

    2012年9月5日 上午 03:39
  • 一、

    不然你換個組合試試

    Visual Web Developer 2012 + SQL Server 2012

    二、

    SQL Server 2012 只能和.NET Framework 4.0以上一起使用,注意你的專案目標版本。

    三、

    改用SqlLocalDB

    四、

    多安裝一個 SQL Server Data Tools (SSDT)

    參考:

    http://stackoverflow.com/questions/10285652/how-to-fix-visual-studios-error-this-server-version-is-not-supported-for-s

    http://connect.microsoft.com/SQLServer/feedback/details/731860/unable-to-create-a-sql-server-2012-projects-in-visual-studio-2010


    理直氣和,切記。

    http://blog.kkbruce.net

    2012年9月5日 上午 03:49
  • ASP.NET角色人員登入???

    是指它內建的腳色嗎??

    若是想使用自己資料庫裡自己建立的資料表內的腳色是否可以呢??

    一個網頁完整的資料庫連接的web.config要寫大量的連接資料庫code??

    不太清楚web.config的作用是什麼??

    是ASP.NET網站管理的功能嗎??

    還是...??

    謝謝

    2012年9月5日 上午 03:52
  • machine.config??

    我的只有web.config

    謝謝

    2012年9月5日 上午 03:56
  • !! 所以說我的搭配是因為" Visual Web Developer 2010 + SQL Server 2012 "

    導致我點資料表的時候出現那樣的警示窗嗎??

    若是要使用Visual Web Developer 2012,我要下載哪個版本呢???

    Visual Studio Express 2012 for Web嗎??

    (http://www.microsoft.com/visualstudio/11/zh-tw/downloads#express-web)

    SqlLocalDB??

     SQL Server Data Tools是??

    2012年9月5日 上午 04:14
  • 一、個人是這樣建議啦:你看書學習,就盡量依照書裡的"環境"來練習與實作,你的時間應該拿來練功,而不是拿來碰…

    二、下載Express版本即可。正式版有試用期。

    三、SqlLocalDB,是SQL Server 2012專為開發人員設計的資料庫,一個很棒很棒很棒的功能。只有小小的幾mb,但能執行絕大多數Express版本的功能。

    四、SSDT是VS2010的資料庫管理外掛工具。

    五、除了第一點,其他內容都在我附的參數連結裡都有。

    六、我個人的VS2010 + SQL 2012是很正常啦。


    理直氣和,切記。

    http://blog.kkbruce.net

    2012年9月5日 上午 08:54
  • 我有一個疑問

    為什麼我都找不到我的「伺服器總管」呢??

    我的只有「資料庫總管」,是不是你們所謂的「伺服器總管」??

    很奇怪,也還是開不起來

    謝謝

    2012年9月5日 上午 10:25
  • 您好,

    因為您的是Express版的吧!

    Express版有限制哦!

     


    以上說明若有錯誤請指教,謝謝。
    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    2012年9月5日 上午 10:32
  • 我有兩種版本耶

    一種是Microsoft Visual Studio 2010

    另一種是Microsoft Visual Studio 2010 Express(裡面有Microsoft Visual Basic 2010 Express和Microsoft Visual Web Developer 2010 Express)

    我是用Microsoft Visual Studio 2010 Express裡面的Microsoft Visual Web Developer 2010 Express

    但是剛開啟Microsoft Visual Studio 2010去開啟我的網頁的時後,也是一樣的結果

    不知道我這兩種版本差別是在哪裡??

    所以各位,連接資料庫的話就是使用「資料庫管理」去連接資料庫,然後在「web.config」裡面添加程式碼??

    目前是不知道如何添加正確的程式碼,還在研究當中

    謝謝各位

    2012年9月5日 上午 10:45
  • 其實工具只是幫助您組出一些字串而已。

    其實您只要知道web.config內各段代碼的含意,其實用手動改一改就可以了。

    其實您的重點只是在於資料庫連線字串的指定而已。要怎麼搭都可以的,甚至您也可以搭MySQL


    我的 ASP.NET MVC 自學日誌: http://mvc.keigen.net/

    2012年9月5日 上午 11:01
  • 您要的可能就是我在第一個回覆所給的連結的最後一張圖,只是在web.config中設定。


    我的 ASP.NET MVC 自學日誌: http://mvc.keigen.net/

    2012年9月5日 上午 11:11
  • 所以,我目前這樣就是代表有連接到資料庫了嗎??

    只是需要在「web.config」裡設定對嗎?

    謝謝

    2012年9月5日 上午 11:35
  • 是的,其實不管是什麼種類的應用程式,Windows Form、ASP.NET、ASP.NET MVC……所有對資料庫的操作只是在於資料庫的連線設定而已。

    而在「web.config」裡設定也只是其中一種方式而已(寫在程式中,另外再查表、.........)重點是要讓應用程式知道資料庫主機在哪裡,

    連進資料庫的帳號密碼是什麼,要連哪一個資料庫等等訊息,這些訊息總是要有個地方查出。

     

    我的 ASP.NET MVC 自學日誌: http://mvc.keigen.net/


    • 已編輯 阿源哥哥 2012年9月5日 上午 11:53
    • 已標示為解答 LarryChao 2012年9月5日 下午 12:24
    2012年9月5日 上午 11:52
  • 了解,謝謝您,謝謝
    2012年9月5日 下午 12:24