2015-04-08 46 views
0

使用Visual Studio 2013爲網絡創建一個使用空白表格一個網站,我剛開始和我與(我認爲)是掙扎Access數據庫的連接。我創建了可以在數據庫中提取和更新數據的表單,但是當我嘗試使用文本框的插入數據創建註冊表單時,我收到了以下錯誤消息。我知道這段代碼並不好我剛開始學習這個!請任何人都可以幫我嗎?.net和訪問數據庫連接問題?

錯誤消息:

System.ArgumentException:關鍵字不支持: '供應商'。在 System.Data.Common.DbConnectionOptions.ParseInternal(哈希表 parsetable,字符串的connectionString,布爾buildChain,哈希表 同義詞,布爾firstKey)在 System.Data.Common.DbConnectionOptions..ctor(字符串的connectionString, Hashtable的同義詞,布爾useOdbcRules)在 System.Data.SqlClient.SqlConnectionString..ctor(字符串 的connectionString)在 System.Data.SqlClient.SqlConnectionFactory.CreateConnectionOptions(字符串 的connectionString,DbConnectionOptions以前)在 System.Data.ProviderBase.DbConnectionFactory.GetConnectionPoolGroup( DbConnectionPoolKey 鍵,DbConnectionPoolGroupOptions poolOptions,DbConnectionOptions &個 userConnectionOptions)在 System.Data.SqlClient.SqlConnection.ConnectionString_Set(DbConnectionPoolKey 鍵)在 System.Data.SqlClient.SqlConnection.set_ConnectionString(字符串值) 在System.Data.SqlClient.SqlConnection..ctor(字符串的connectionString , SqlCredential憑證)在 System.Data.SqlClient.SqlConnection..ctor(字符串的connectionString)在 Registration.Button1_Click(對象發件人,EventArgs e)如 C:\用戶\婁\文件\的Visual Studio 2013 \網站已\ BeautyExperts \ Registration.aspx.cs:線22

個Registion.aspx.cs代碼:

`enter code here`using System; 
    using System.Collections.Generic; 
    using System.Linq; 
    using System.Web; 
    using System.Web.UI; 
    using System.Web.UI.WebControls; 
    using System.Data.SqlClient; 
    using System.Configuration; 
    using System.Data.OleDb; 

    public partial class Registration : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 

     } 
     protected void Button1_Click(object sender, EventArgs e) 
     { 

      try 
      { 
       SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["UsersConnectionString"].ConnectionString); 
       conn.Open(); 

       string insertQuery = "insert into login (first_name,last_name) values (@first_name,@last_name)"; 

       SqlCommand com = new SqlCommand(insertQuery, conn); 
       com.Parameters.AddWithValue("@first_name", TextBoxFirstName.Text); 
       com.Parameters.AddWithValue("@last_name", TextBoxLastName.Text); 


       com.ExecuteNonQuery(); 
       Response.Redirect("UsersGridView.aspx"); 
       Response.Write("Registration successful"); 
       conn.Close(); 
      } 

      catch (Exception ex) 
      { 
       Response.Write("Error: " + ex.ToString()); 
      } 
    } 
} 

配置文件:

<?xml version="1.0"?> 
<!-- 
    For more information on how to configure your ASP.NET application, please visit 
    http://go.microsoft.com/fwlink/?LinkId=169433 
    --> 
<configuration> 
    <configSections> 
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> 
    </configSections> 
    <connectionStrings> 
    <add name="LoginConnectionString" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\lou\Documents\BeautyExpertsDB.accdb" providerName="System.Data.OleDb"/> 
    <add name="UsersConnectionString" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\lou\Documents\BeautyExpertsDB.accdb" providerName="System.Data.OleDb"/> 
    <add name="Users1ConnectionString" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\BeautyExpertsDatabase.mdf;Integrated Security=True" providerName="System.Data.SqlClient"/> 
    </connectionStrings> 
    <system.web> 
    <compilation debug="true" targetFramework="4.5"> 
     <assemblies> 
     <add assembly="System.Web.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
     <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
     </assemblies> 
    </compilation> 
    <httpRuntime targetFramework="4.5"/> 
    </system.web> 
    <appSettings> 
    <add key="ValidationSettings:UnobtrusiveValidationMode" value="None"/> 
    </appSettings> 
</configuration> 
+0

我猜連接字符串我也看不出是不正確。 – duffymo

+0

感謝您的回覆。你的意思是連接字符串「UsersConnectionString」?當使用其他表單來更新和查看數據庫中的項目時,這是否正常工作? – ZMB

+1

份額UsersConnectionString價值,這是在web.config中 –

回答

1

您使用SqlConnection訪問Ole因此錯誤。改變你的C#代碼使用OleDbConnection和相關命令即OleDbCommand,並預期它應該只是工作。

using (OleDbConnection connection = new OleDbConnection("Your Connection String")) 
{ 
    //Do something here 
} 

進一步閱讀here

+0

非常感謝您的幫助,我一直很堅持就這個問題和它是如此簡單!我已經嘗試了OleDbConnection,但是當我正在研究一個答案時,我沒有遇到有關OleDbCommand的任何內容。 – ZMB

+0

不客氣,很高興我能幫忙:) – Izzy