ASP.NET uses SqlConnection connect MySQL

This is the connection string saved in web.config :

 <appSettings> <add key="conn" value="Driver={MySQL ODBC 5.1 Driver};server=127.0.0.1;uid=root;pwd=1234;database=gis_server;option=3"/> </appSettings> 

This is the code to connect to the database:

 protected bool CheckPasswordBySqlServer(string strEmail, string strPsw) { if (strEmail.ToLower() == "admin") { return false; } string str = "select id,Rank,RankEnc,ParentUser,Company from tbl_User where userName=@UserName and password1=@password "; private string strConn = ConfigurationManager.AppSettings["conn"].ToString(); SqlConnection sqlConnection = new SqlConnection(strConn); bool flag = false; try { try { sqlConnection.Open(); SqlCommand sqlCommand = new SqlCommand(str, sqlConnection); sqlCommand.Parameters.AddWithValue("UserName", strEmail); sqlCommand.Parameters.AddWithValue("Password", strPsw); SqlDataReader sqlDataReader = sqlCommand.ExecuteReader(); if (!sqlDataReader.Read()) { flag = false; } else { this.Session["UserName"] = strEmail; this.Session["Password"] = strPsw; this.Session["LoginType"] = "Group"; this.Session["FullName"] = sqlDataReader["Company"].ToString(); if (FormsAuthentication.HashPasswordForStoringInConfigFile(string.Concat(strEmail, (char)43, sqlDataReader["Rank"].ToString()).ToLower(), "MD5") != sqlDataReader["RankEnc"].ToString().Trim()) { flag = false; } this.Session["ClientID"] = sqlDataReader["id"].ToString(); this.Session["MyLanguage"] = base.Request.Cookies["Language"].Value; this.Session["ParentUser"] = sqlDataReader["ParentUser"].ToString().Trim(); this.Session["Rank"] = sqlDataReader["Rank"].ToString(); this.Session["strConnection"] = this.strConn; flag = true; } sqlDataReader.Close(); } catch (Exception exception) { this.SetlblInfoHtml(exception.Message); } } finally { sqlConnection.Close(); } return flag; } 

But it cannot connect to MySQL, with this return error:

 System.ArgumentException: Keyword not supported: 'driver'. at System.Data.Common.DbConnectionOptions.ParseInternal(Hashtable parsetable, String connectionString, Boolean buildChain, Hashtable synonyms, Boolean firstKey) at System.Data.Common.DbConnectionOptions..ctor(String connectionString, Hashtable synonyms, Boolean useOdbcRules) at System.Data.SqlClient.SqlConnectionString..ctor(String connectionString) at System.Data.SqlClient.SqlConnectionFactory.CreateConnectionOptions(String connectionString, DbConnectionOptions previous) at System.Data.ProviderBase.DbConnectionFactory.GetConnectionPoolGroup(String connectionString, DbConnectionPoolGroupOptions poolOptions, DbConnectionOptions& userConnectionOptions) at System.Data.SqlClient.SqlConnection.ConnectionString_Set(String value) at System.Data.SqlClient.SqlConnection.set_ConnectionString(String value) at System.Data.SqlClient.SqlConnection..ctor(String connectionString) at Source_LoginFrm.CheckPasswordBySqlServer(String strEmail, String strPsw) at Source_LoginFrm.btnLogin_Click(String strLang) 

Is it possible that SqlConnection will mount the MySQL database?

+6
source share
2 answers

SqlConnection for SQL Server. You need MySqlConnection - this is not part of the .NET Framework, so you need to download it and reference it in your project. Then you can create a MySqlConnection object and connect to MySQL in your application:

 MySqlConnection connection = new MySqlConnection(myConnString); 

You will also have to use the MySqlCommand object, not the SqlCommand object.

http://dev.mysql.com/doc/refman/5.0/es/connector-net-examples-mysqlconnection.html

+17
source

Not that I knew, and even if that were so, why would you need it? You are using a connection object specially created for Microsoft SQL Server, so it will not connect in the same way as MySQL.

To access the MySQL database, you must use the MySQL.NET connector, which you can find here .

0
source

Source: https://habr.com/ru/post/951803/


All Articles