2013-02-11 54 views
0

我真的很抱歉,可能這是真正的初級問題,但我是新來的asp.net,我搜索了很多,但找不到適合我的問題的解決方案。將註冊用戶控件連接到ASP.NET中的SQL Server數據庫

我的問題是:我想我的用戶註冊數據保存到一個SQL Server數據庫中創建用戶按鈕,我寫了下面的代碼:

protected void RegisterUser_CreatedUser(object sender, EventArgs e) 
{ 
    UserDTO user = new UserDTO(); 
    user.userName = RegisterUser.UserName; 
    user.password = RegisterUser.Password; 
    user.userType = "User"; 

    string continueUrl = RegisterUser.ContinueDestinationPageUrl; 

    if (user.addUser()) 
    { 
     continueUrl = "~/"; 
    } 

    Response.Redirect(continueUrl); 
} 

addUser()我創建了一個連接,並試圖挽救他們。但是我在項目中發現了一個名爲App_Data的內置數據庫。所以即使數據不會保存到我的SQL Server數據庫,第二次它說用戶名已經存在。這意味着我的用戶名保存在App_Data數據庫中。

我的問題是:

  1. 我怎樣才能刪除此App_Data
  2. 我可以看看這個App_Data表結構嗎?
  3. 或任何有關使用此用戶控件將數據保存到SQL Server數據庫的建議?

編輯: 我的配置文件,如下所示:

<configSections> 
    <section name="DatabaseFactoryConfiguration" type="PatientMgt_DataLayer.DatabaseFactorySectionHandler, PatientMgt_DataLayer, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/> 
    </configSections> 

    <connectionStrings> 
    <clear/> 
    <add name="MyConnection1" providerName="MSSQL" connectionString="Data Source=pqr;Initial Catalog=HospitalMgt;User Id=sa;Password=abc" /> 
    </connectionStrings> 

    <DatabaseFactoryConfiguration Name="PatientMgt_DataLayer.MsSqlDatabase" ConnectionStringName="MyConnection1"/> 

    <system.web> 
    <compilation debug="true" targetFramework="4.0" /> 

    <authentication mode="Forms"> 
     <forms loginUrl="~/Account/Login.aspx" timeout="2880" /> 
    </authentication> 

    <membership defaultProvider="AspNetSqlMembershipProvider"> 
     <providers> 
     <clear/> 
     <add name="MyConnection1" type="System.Web.Security.SqlMembershipProvider" connectionStringName="MyConnection1" 
      enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" 
      maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" 
      applicationName="/" /> 

     </providers> 
    </membership> 

錯誤我收到 -

描述: 配置文件的要求,以服務的處理過程中發生錯誤這個請求。請查看下面的 特定錯誤詳細信息,並適當修改您的配置文件 。

解析器錯誤消息:找不到默認的成員資格提供程序。

編輯問題

問題是,當用戶通過這種形式添加用戶名和PWD,如果數據不保存到數據庫爲什麼形式不允許再次添加相同的用戶名?

+0

請提供'addUser'的代碼。這將使診斷更容易。 – 2013-02-11 18:08:15

+0

查看我更新的帖子 - 你需要在你的''節點上定義一個默認值 - 像這樣:'' – 2013-02-11 19:09:16

+0

@marc_s我改變了這種方式......但仍然給出相同的錯誤。編輯的問題,因爲你擁有 – DevT 2013-02-11 19:15:18

回答

2

OK,幾件事情:

  • App_Data是一個衆所周知的ASP.NET 文件夾 - 不是一個數據庫。
  • 默認情況下,ASP.NET成員資格供應商將放置它的SQL Server Express ASPNETDB.MDF數據文件到該文件夾​​,並從那裏

使用,所以你並不需要刪除App_Data或類似的東西 - 您只需告訴ASP.NET成員資格系統使用您自己的SQL Server數據庫。

要有ASP。在自己的數據庫NET會員表,你需要:

  1. 執行aspnet_regsql工具,在.NET文件夾中(通常類似於C:\Windows\Microsoft.NET\Framework\v4.0.30319\或任何你正在使用的.NET Framework版本);運行該應用程序,您將看到一個對話框,引導您完成將ASP.NET成員資料安裝到您自己的數據庫中的工作。

  2. ,那麼你需要修改web.config確保ASP.NET成員資格系統採用數據庫,而不是它的默認的SQL Server Express。

你可能有這樣的事情在你的web.config當你創建了一個標準的ASP.NET應用程序:

<connectionStrings> 
    <add name="ApplicationServices" 
     connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" /> 
</connectionStrings> 
<system.web> 
    <membership defaultProvider="AspNetSqlMembershipProvider"> 
     <providers> 
     <clear /> 
     <add name="AspNetSqlMembershipProvider" 
       type="System.Web.Security.SqlMembershipProvider" 
       connectionStringName="ApplicationServices" 
       enablePasswordRetrieval="false" enablePasswordReset="true" 
       requiresQuestionAndAnswer="false" requiresUniqueEmail="false" 
       maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" 
       minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" 
       applicationName="/" /> 
     </providers> 
    </membership> 

,最有可能,你已經有了一些自己的連接字符串,爲你自己的數據庫 - 對嗎?

所以你只需要改變ASP.NET <membership>標籤使用你的連接字符串!

<system.web> 
    <membership> 
     <providers> 
     <clear /> 
     <add name="PutYourDefaultDatabaseConnectionStringNameHere" <<=== CHANGE THIS! 
       type="System.Web.Security.SqlMembershipProvider" 
       ....... /> 
     </providers> 
    </membership> 
+0

在這裏PutYourDefaultDatabaseConnectionStringNameHere - >根據你的例子我需要把ApplicationServices? – DevT 2013-02-11 18:32:03

+0

我編輯了我的問題我附加我的web.config文件信息 – DevT 2013-02-11 18:40:37

+0

我運行aspnet_regsql並將其配置爲sql服務器。然後改變爲你建議(更新我的問題),但它給上述錯誤。 – DevT 2013-02-11 19:01:40