C ා connect to mysql database by reading configuration file

Keywords: Database MySQL less SQL

The most common way to connect to the database is through string connection, as follows:

public static string connstr = "server = localhost; uid = root; pwd = 123456; database = db_sms;";

 MySqlConnection conn = new MySqlConnection(connstr);
 MySqlCommand comm = new MySqlCommand(sqlstr, conn);

However, this method is not conducive to the later maintenance after the application is released.

All of them connect through another way -- by reading the configuration file App.config

(1) First write App.config:

<configuration>
  <connectionStrings>
    <add name ="connstr" connectionString ="server = localhost; uid = root; pwd = 123456; database = db_sms;"/>
  </connectionStrings>
</configuration>

Be sure to edit in the configuration node and write the string connecting to the database.

(2) Add reference System.Configuration

(3) Use the ConfigurationManger class:

 public static string connstr = ConfigurationManager.ConnectionStrings["connstr"].ToString();

Next is the normal operation (add, delete, modify and query)

matters needing attention:

(1) The following code must be written strictly without any errors. Even if one character is wrong (one more character, one less character, case), the configuration file reading will fail.

<configuration>
  <connectionStrings>
    <add name ="" connectionString =""/>
  </connectionStrings>
</configuration>

(2) The name of the database connection string (in this case, "connstr") must be consistent in App.config and in the code.

 

Attach the complete code of database operation class:

  1. using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Data;
    using MySql.Data;
    using MySql.Data.MySqlClient;
    using System.Configuration;
    
    namespace DAL
    {
        public class SQLHelper
        {
            //public static string connstr = "server = localhost; uid = root; pwd = 123456; database = db_sms;";
    
            /*
             1.Add in the App.config configuration file under SMS:
             <connectionStrings>
                <add name ="connstr" connectionString ="server = localhost; uid = root; pwd = 123456; database = db_sms;"/>
             </connectionStrings>
    
             2.Add reference under DAL: System.Configuration
    
             3.Add namespace, use ConnectionStrings under ConfigurationManager class
             */
    
            // Database connection by reading configuration file
            public static string connstr = ConfigurationManager.ConnectionStrings["connstr"].ToString();
    
            /// <summary>
            ///Execute addition, deletion and modification
            /// </summary>
            /// <param name="sqlstr"></param>
            /// <returns></returns>
            private static int UpDate(string sqlstr)
            {
                MySqlConnection conn = new MySqlConnection(connstr);
                MySqlCommand comm = new MySqlCommand(sqlstr, conn);
                try
                {
                    conn.Open();
                    int result = comm.ExecuteNonQuery();
                    return result;
                }
                catch (System.Exception ex)
                {
                    // Write to system log
                    throw ex;
                }
                finally
                {
                    conn.Close();
                }
            }
    
            /// <summary>
            ///Queries: getting a single result
            /// </summary>
            /// <param name="sql"></param>
            /// <returns></returns>
            public static object GetSingleResult(string sqlstr)
            {
                MySqlConnection conn = new MySqlConnection(connstr);
                MySqlCommand comm = new MySqlCommand(sqlstr, conn);
                try
                {
                    conn.Open();
                    object result = comm.ExecuteScalar();
                    return result;
                }
                catch (System.Exception ex)
                {
                    // Write to system log
                    throw ex;
                }
                conn.Close();
            }
    
            /// <summary>
            ///Queries: getting result sets
            /// </summary>
            /// <param name="sqlstr"></param>
            /// <returns></returns>
            public static MySqlDataReader GetDataReader(string sqlstr)
            {
                MySqlConnection conn = new MySqlConnection(connstr);
                MySqlCommand comm = new MySqlCommand(sqlstr, conn);
                try
                {
                    conn.Open();
                    return comm.ExecuteReader(CommandBehavior.CloseConnection);
                }
                catch (System.Exception ex)
                {
                    // Write to system log
                    conn.Clone();
                    throw ex;
                }
                finally
                {
                    conn.Close();
                }
            }
        }
    }
    

     

Posted by Redlightpacket on Tue, 31 Dec 2019 07:40:54 -0800