欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

c# 向MySQL添加數(shù)據(jù)的兩種方法

 更新時間:2021年03月02日 09:20:35   作者:Hello——尋夢者!  
這篇文章主要介紹了c# 向MySQL添加數(shù)據(jù)的兩種方法,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下

       下面介紹兩種執(zhí)行SQL命令的方法,并作出相應(yīng)地總結(jié),第一種介紹一種常規(guī)用法,下面進行做簡要地分析,首先我們需要執(zhí)行打開數(shù)據(jù)庫操作首先創(chuàng)建一個MySqlConnection對象,在其構(gòu)造函數(shù)中傳入一個連接字符串,然后執(zhí)行Open操作打開數(shù)據(jù)庫,在正確打開數(shù)據(jù)庫之后我們才能進行相關(guān)的動作,在ExecuteSQL這個函數(shù)中,

     我們執(zhí)行MySqlCommand myCmd = new MySqlCommand(CmdString, conn),從而創(chuàng)建MySqlCommand對象,其中傳入的兩個參數(shù)分別為sql命令和第一步建立的MySqlConnection對象,然后執(zhí)行int Cmd = myCmd.ExecuteNonQuery()這一句執(zhí)行相應(yīng)的命令,并返回受影響的行數(shù),最后我們需要關(guān)閉數(shù)據(jù)庫連接,并釋放非托管資源,從而完成整個數(shù)據(jù)庫操作的過程;這個是比較常規(guī)的一種做法,也是我們使用比較多的一種形式。

public class DataBaseMySqlHelper
{
    string connstr;
    MySqlConnection conn;
    //Server=xxxxxxx;Database=xxxxxxx;Uid=xxxxxxx;Pwd=xxxxxxx;CharSet=gbk;
    //Server=xxx.xx.xxx.xx;Database=MSUP;Uid=dvision;Pwd=dvision;Port=xxxx;allow zero datetime = true;
    MainWindow _MainWindow;
 
 
    public DataBaseMySqlHelper(MainWindow mainWindow)
    {
        _MainWindow = mainWindow;
         connstr = _MainWindow._ConfigInfo.MySqlConnectionStrings;        
    }
 
    public DataBaseMySqlHelper(MainWindow mainWindow, string connectionString)
    {
        _MainWindow = mainWindow;
        connstr = connectionString;
    }
 
    /// <summary>
    /// 打開數(shù)據(jù)庫連接
    /// </summary>
    void Open()
    {
        try
        {
            conn = new MySqlConnection(connstr);
            conn.Open();
        }
        catch (Exception ex)
        {
 
            System.Windows.Forms.MessageBox.Show(ex.Message);
        }
         
    }
    /// <summary>
    /// 關(guān)閉數(shù)據(jù)庫連接
    /// </summary>
    void Close()
    {
        conn.Close();
    }
 
    /// <summary>
    /// 返回影響數(shù)據(jù)庫的行數(shù)            
    /// </summary>
    /// <param name="CmdString"></param>
    /// <returns></returns>
    public int ExecuteSQL(string CmdString)
    {
        try
        {
            Open();
            MySqlCommand myCmd = new MySqlCommand(CmdString, conn);
            int Cmd = myCmd.ExecuteNonQuery();
            Close();
            return Cmd;
        }
        catch (Exception ex)
        {
            _MainWindow.ShowErrorMessage(" MySql數(shù)據(jù)庫查詢失敗!");
            return 0;
        }
    }
 
    /// <summary>
    /// 返回數(shù)據(jù)表
    /// </summary>
    /// <param name="CmdString"></param>
    /// <returns></returns>
    public DataTable GetDataTable(string CmdString)
    {
        try
        {
            Open();
            DataSet myDs = new DataSet();
            MySqlDataAdapter myDa = new MySqlDataAdapter();
            myDa.SelectCommand = new MySqlCommand(CmdString, conn);
            myDa.Fill(myDs);
            Close();
            return myDs.Tables[0];
        }
        catch (Exception e)
        {
            _MainWindow.ShowErrorMessage(" MySql數(shù)據(jù)庫查詢失敗!");
            return null;
        }
    }
}

   第二種方式,這里也貼出關(guān)鍵代碼并做簡要的分析:這里的關(guān)鍵是MySqlParameter[]數(shù)組的使用,我們在執(zhí)行SQL語句的時候 DbHelperMySQL.ExecuteSql(strSql.ToString(),parameters);這里的parameters就是MySqlParameter[]數(shù)組,里面存儲的是每個字段的數(shù)據(jù),我們將在下面的代碼中展示parameters的內(nèi)容,

/// <summary>
        /// 增加一條數(shù)據(jù)
        /// </summary>
        public void Add(Maticsoft.Model.cameradetail model)
        {
            StringBuilder strSql=new StringBuilder();
            strSql.Append("insert into cameradetail_gis(");
            strSql.Append("EncodeDeviceUsername,MatrixIP,EncodeDevicePassword,id,Name,DisplayName,Location,Longitude,Latitude,CameraActive,ServerID,ForwardSvrIP,ForwardSvrPort,EncodeDeviceIP,EncodeDevicePort,CameraType,CameraModel,DeviceChannel,MatrixPort,MatrixChannelNum,VideoStoreServerIP,VideoStoreServerPort,VideoStoreServerUserID,VideoStoreServerPassword,EncodeDeviceModelNum,EncodeDeviceModelName,CameraInstallAddress,CameraStatus)");
            strSql.Append(" values (");
            strSql.Append("@EncodeDeviceUsername,@MatrixIP,@EncodeDevicePassword,@id,@Name,@DisplayName,@Location,@Longitude,@Latitude,@CameraActive,@ServerID,@ForwardSvrIP,@ForwardSvrPort,@EncodeDeviceIP,@EncodeDevicePort,@CameraType,@CameraModel,@DeviceChannel,@MatrixPort,@MatrixChannelNum,@VideoStoreServerIP,@VideoStoreServerPort,@VideoStoreServerUserID,@VideoStoreServerPassword,@EncodeDeviceModelNum,@EncodeDeviceModelName,@CameraInstallAddress,@CameraStatus)");
            MySqlParameter[] parameters = {
                    new MySqlParameter("@EncodeDeviceUsername", MySqlDbType.VarChar,64),
                    new MySqlParameter("@MatrixIP", MySqlDbType.VarChar,16),
                    new MySqlParameter("@EncodeDevicePassword", MySqlDbType.VarChar,64),
                    new MySqlParameter("@id", MySqlDbType.VarChar,14),
                    new MySqlParameter("@Name", MySqlDbType.VarChar,100),
                    new MySqlParameter("@DisplayName", MySqlDbType.VarChar,100),
                    new MySqlParameter("@Location", MySqlDbType.VarChar,250),
                    new MySqlParameter("@Longitude", MySqlDbType.VarChar,16),
                    new MySqlParameter("@Latitude", MySqlDbType.VarChar,16),
                    new MySqlParameter("@CameraActive", MySqlDbType.Int32,11),
                    new MySqlParameter("@ServerID", MySqlDbType.VarChar,16),
                    new MySqlParameter("@ForwardSvrIP", MySqlDbType.VarChar,16),
                    new MySqlParameter("@ForwardSvrPort", MySqlDbType.VarChar,16),
                    new MySqlParameter("@EncodeDeviceIP", MySqlDbType.VarChar,16),
                    new MySqlParameter("@EncodeDevicePort", MySqlDbType.VarChar,6),
                    new MySqlParameter("@CameraType", MySqlDbType.VarChar,6),
                    new MySqlParameter("@CameraModel", MySqlDbType.VarChar,6),
                    new MySqlParameter("@DeviceChannel", MySqlDbType.VarChar,12),
                    new MySqlParameter("@MatrixPort", MySqlDbType.VarChar,6),
                    new MySqlParameter("@MatrixChannelNum", MySqlDbType.VarChar,14),
                    new MySqlParameter("@VideoStoreServerIP", MySqlDbType.VarChar,16),
                    new MySqlParameter("@VideoStoreServerPort", MySqlDbType.VarChar,6),
                    new MySqlParameter("@VideoStoreServerUserID", MySqlDbType.VarChar,50),
                    new MySqlParameter("@VideoStoreServerPassword", MySqlDbType.VarChar,20),
                    new MySqlParameter("@EncodeDeviceModelNum", MySqlDbType.VarChar,6),
                    new MySqlParameter("@EncodeDeviceModelName", MySqlDbType.VarChar,50),
                    new MySqlParameter("@CameraInstallAddress", MySqlDbType.VarChar,250),
                    new MySqlParameter("@CameraStatus", MySqlDbType.Int32,11)};
            parameters[0].Value = model.EncodeDeviceUsername;
            parameters[1].Value = model.MatrixIP;
            parameters[2].Value = model.EncodeDevicePassword;
            parameters[3].Value = model.id;
            parameters[4].Value = model.Name;
            parameters[5].Value = model.DisplayName;
            parameters[6].Value = model.Location;
            parameters[7].Value = model.Longitude;
            parameters[8].Value = model.Latitude;
            parameters[9].Value = model.CameraActive;
            parameters[10].Value = model.ServerID;
            parameters[11].Value = model.ForwardSvrIP;
            parameters[12].Value = model.ForwardSvrPort;
            parameters[13].Value = model.EncodeDeviceIP;
            parameters[14].Value = model.EncodeDevicePort;
            parameters[15].Value = model.CameraType;
            parameters[16].Value = model.CameraModel;
            parameters[17].Value = model.DeviceChannel;
            parameters[18].Value = model.MatrixPort;
            parameters[19].Value = model.MatrixChannelNum;
            parameters[20].Value = model.VideoStoreServerIP;
            parameters[21].Value = model.VideoStoreServerPort;
            parameters[22].Value = model.VideoStoreServerUserID;
            parameters[23].Value = model.VideoStoreServerPassword;
            parameters[24].Value = model.EncodeDeviceModelNum;
            parameters[25].Value = model.EncodeDeviceModelName;
            parameters[26].Value = model.CameraInstallAddress;
            parameters[27].Value = model.CameraStatus;
 
            DbHelperMySQL.ExecuteSql(strSql.ToString(),parameters);
        }

 這里我們重點來關(guān)注DbHelperMySQL.ExecuteSql(strSql.ToString(),parameters)這個函數(shù),函數(shù)的源碼如下:

     這里面有一個重要的函數(shù)PrepareCommand(cmd, connection, null, SQLString, cmdParms),我們這里也貼出相應(yīng)地源碼,并做簡要的分析:

   這個函數(shù)首先是打開數(shù)據(jù)庫連接,這里面最重要就是講cmdParms里面的參數(shù)一個個添加到cmd.Parameters中,然后執(zhí)行 int rows = cmd.ExecuteNonQuery();命令來執(zhí)行相應(yīng)的操作,這是一種決然不同的思路,我們在使用的時候可以考慮這兩種方式來進行數(shù)據(jù)庫的插入操作!

private static void PrepareCommand(MySqlCommand cmd, MySqlConnection conn, MySqlTransaction trans, string cmdText, MySqlParameter[] cmdParms)
        {
            if (conn.State != ConnectionState.Open)
                conn.Open();
            cmd.Connection = conn;
            cmd.CommandText = cmdText;
            if (trans != null)
                cmd.Transaction = trans;
            cmd.CommandType = CommandType.Text;//cmdType;
            if (cmdParms != null)
            {
                foreach (MySqlParameter parameter in cmdParms)
                {
                    if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) &&
                        (parameter.Value == null))
                    {
                        parameter.Value = DBNull.Value;
                    }
                    cmd.Parameters.Add(parameter);
                }
            }
        }
 
        #endregion
/// <summary>
        /// 執(zhí)行SQL語句,返回影響的記錄數(shù)
        /// </summary>
        /// <param name="SQLString">SQL語句</param>
        /// <returns>影響的記錄數(shù)</returns>
        public static int ExecuteSql(string SQLString, params MySqlParameter[] cmdParms)
        {
            using (MySqlConnection connection = new MySqlConnection(connectionString))
            {
                using (MySqlCommand cmd = new MySqlCommand())
                {
                    try
                    {
                        PrepareCommand(cmd, connection, null, SQLString, cmdParms);
                        int rows = cmd.ExecuteNonQuery();
                        cmd.Parameters.Clear();
                        return rows;
                    }
                    catch (MySql.Data.MySqlClient.MySqlException e)
                    {
                        throw e;
                    }
                }
            }
        }
#region  執(zhí)行簡單SQL語句
 
     /// <summary>
     /// 執(zhí)行SQL語句,返回影響的記錄數(shù)
     /// </summary>
     /// <param name="SQLString">SQL語句</param>
     /// <returns>影響的記錄數(shù)</returns>
     public static int ExecuteSql(string SQLString)
     {
         using (MySqlConnection connection = new MySqlConnection(connectionString))
         {
             using (MySqlCommand cmd = new MySqlCommand(SQLString, connection))
             {
                 try
                 {
                     connection.Open();
                     int rows = cmd.ExecuteNonQuery();
                     return rows;
                 }
                 catch (MySql.Data.MySqlClient.MySqlException e)
                 {
                     connection.Close();
                     throw e;
                 }
             }
         }
     }
 
     public static int ExecuteSqlByTime(string SQLString, int Times)
     {
         using (MySqlConnection connection = new MySqlConnection(connectionString))
         {
             using (MySqlCommand cmd = new MySqlCommand(SQLString, connection))
             {
                 try
                 {
                     connection.Open();
                     cmd.CommandTimeout = Times;
                     int rows = cmd.ExecuteNonQuery();
                     return rows;
                 }
                 catch (MySql.Data.MySqlClient.MySqlException e)
                 {
                     connection.Close();
                     throw e;
                 }
             }
         }
     }
    
     /// <summary>
     /// 執(zhí)行MySql和Oracle滴混合事務(wù)
     /// </summary>
     /// <param name="list">SQL命令行列表</param>
     /// <param name="oracleCmdSqlList">Oracle命令行列表</param>
     /// <returns>執(zhí)行結(jié)果 0-由于SQL造成事務(wù)失敗 -1 由于Oracle造成事務(wù)失敗 1-整體事務(wù)執(zhí)行成功</returns>
     public static int ExecuteSqlTran(List<CommandInfo> list, List<CommandInfo> oracleCmdSqlList)
     {
         using (MySqlConnection conn = new MySqlConnection(connectionString))
         {
             conn.Open();
             MySqlCommand cmd = new MySqlCommand();
             cmd.Connection = conn;
             MySqlTransaction tx = conn.BeginTransaction();
             cmd.Transaction = tx;
             try
             {
                 foreach (CommandInfo myDE in list)
                 {
                     string cmdText = myDE.CommandText;
                     MySqlParameter[] cmdParms = (MySqlParameter[])myDE.Parameters;
                     PrepareCommand(cmd, conn, tx, cmdText, cmdParms);
                     if (myDE.EffentNextType == EffentNextType.SolicitationEvent)
                     {
                         if (myDE.CommandText.ToLower().IndexOf("count(") == -1)
                         {
                             tx.Rollback();
                             throw new Exception("違背要求"+myDE.CommandText+"必須符合select count(..的格式");
                             //return 0;
                         }
                         object obj = cmd.ExecuteScalar();
                         bool isHave = false;
                         if (obj == null && obj == DBNull.Value)
                         {
                             isHave = false;
                         }
                         isHave = Convert.ToInt32(obj) > 0;
                         if (isHave)
                         {
                             //引發(fā)事件
                             myDE.OnSolicitationEvent();
                         }
                     }
                     if (myDE.EffentNextType == EffentNextType.WhenHaveContine || myDE.EffentNextType == EffentNextType.WhenNoHaveContine)
                     {
                         if (myDE.CommandText.ToLower().IndexOf("count(") == -1)
                         {
                             tx.Rollback();
                             throw new Exception("SQL:違背要求" + myDE.CommandText + "必須符合select count(..的格式");
                             //return 0;
                         }
 
                         object obj = cmd.ExecuteScalar();
                         bool isHave = false;
                         if (obj == null && obj == DBNull.Value)
                         {
                             isHave = false;
                         }
                         isHave = Convert.ToInt32(obj) > 0;
 
                         if (myDE.EffentNextType == EffentNextType.WhenHaveContine && !isHave)
                         {
                             tx.Rollback();
                             throw new Exception("SQL:違背要求" + myDE.CommandText + "返回值必須大于0");
                             //return 0;
                         }
                         if (myDE.EffentNextType == EffentNextType.WhenNoHaveContine && isHave)
                         {
                             tx.Rollback();
                             throw new Exception("SQL:違背要求" + myDE.CommandText + "返回值必須等于0");
                             //return 0;
                         }
                         continue;
                     }
                     int val = cmd.ExecuteNonQuery();
                     if (myDE.EffentNextType == EffentNextType.ExcuteEffectRows && val == 0)
                     {
                         tx.Rollback();
                         throw new Exception("SQL:違背要求" + myDE.CommandText + "必須有影響行");
                         //return 0;
                     }
                     cmd.Parameters.Clear();
                 }
                 string oraConnectionString = PubConstant.GetConnectionString("ConnectionStringPPC");
                 bool res = OracleHelper.ExecuteSqlTran(oraConnectionString, oracleCmdSqlList);
                 if (!res)
                 {
                     tx.Rollback();
                     throw new Exception("執(zhí)行失敗");
                     // return -1;
                 }
                 tx.Commit();
                 return 1;
             }
             catch (MySql.Data.MySqlClient.MySqlException e)
             {
                 tx.Rollback();
                 throw e;
             }
             catch (Exception e)
             {
                 tx.Rollback();
                 throw e;
             }
         }
     }       
     /// <summary>
     /// 執(zhí)行多條SQL語句,實現(xiàn)數(shù)據(jù)庫事務(wù)。
     /// </summary>
     /// <param name="SQLStringList">多條SQL語句</param>    
     public static int ExecuteSqlTran(List<String> SQLStringList)
     {
         using (MySqlConnection conn = new MySqlConnection(connectionString))
         {
             conn.Open();
             MySqlCommand cmd = new MySqlCommand();
             cmd.Connection = conn;
             MySqlTransaction tx = conn.BeginTransaction();
             cmd.Transaction = tx;
             try
             {
                 int count = 0;
                 for (int n = 0; n < SQLStringList.Count; n++)
                 {
                     string strsql = SQLStringList[n];
                     if (strsql.Trim().Length > 1)
                     {
                         cmd.CommandText = strsql;
                         count += cmd.ExecuteNonQuery();
                     }
                 }
                 tx.Commit();
                 return count;
             }
             catch
             {
                 tx.Rollback();
                 return 0;
             }
         }
     }
 
     /// <summary>
     /// 執(zhí)行帶一個存儲過程參數(shù)的的SQL語句。
     /// </summary>
     /// <param name="SQLString">SQL語句</param>
     /// <param name="content">參數(shù)內(nèi)容,比如一個字段是格式復(fù)雜的文章,有特殊符號,可以通過這個方式添加</param>
     /// <returns>影響的記錄數(shù)</returns>
     public static int ExecuteSql(string SQLString, string content)
     {
         using (MySqlConnection connection = new MySqlConnection(connectionString))
         {
             MySqlCommand cmd = new MySqlCommand(SQLString, connection);
             MySql.Data.MySqlClient.MySqlParameter myParameter = new MySql.Data.MySqlClient.MySqlParameter("@content", SqlDbType.NText);
             myParameter.Value = content;
             cmd.Parameters.Add(myParameter);
             try
             {
                 connection.Open();
                 int rows = cmd.ExecuteNonQuery();
                 return rows;
             }
             catch (MySql.Data.MySqlClient.MySqlException e)
             {
                 throw e;
             }
             finally
             {
                 cmd.Dispose();
                 connection.Close();
             }
         }
     }
     /// <summary>
     /// 執(zhí)行帶一個存儲過程參數(shù)的的SQL語句。
     /// </summary>
     /// <param name="SQLString">SQL語句</param>
     /// <param name="content">參數(shù)內(nèi)容,比如一個字段是格式復(fù)雜的文章,有特殊符號,可以通過這個方式添加</param>
     /// <returns>影響的記錄數(shù)</returns>
     public static object ExecuteSqlGet(string SQLString, string content)
     {
         using (MySqlConnection connection = new MySqlConnection(connectionString))
         {
             MySqlCommand cmd = new MySqlCommand(SQLString, connection);
             MySql.Data.MySqlClient.MySqlParameter myParameter = new MySql.Data.MySqlClient.MySqlParameter("@content", SqlDbType.NText);
             myParameter.Value = content;
             cmd.Parameters.Add(myParameter);
             try
             {
                 connection.Open();
                 object obj = cmd.ExecuteScalar();
                 if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
                 {
                     return null;
                 }
                 else
                 {
                     return obj;
                 }
             }
             catch (MySql.Data.MySqlClient.MySqlException e)
             {
                 throw e;
             }
             finally
             {
                 cmd.Dispose();
                 connection.Close();
             }
         }
     }
     /// <summary>
     /// 向數(shù)據(jù)庫里插入圖像格式的字段(和上面情況類似的另一種實例)
     /// </summary>
     /// <param name="strSQL">SQL語句</param>
     /// <param name="fs">圖像字節(jié),數(shù)據(jù)庫的字段類型為image的情況</param>
     /// <returns>影響的記錄數(shù)</returns>
     public static int ExecuteSqlInsertImg(string strSQL, byte[] fs)
     {
         using (MySqlConnection connection = new MySqlConnection(connectionString))
         {
             MySqlCommand cmd = new MySqlCommand(strSQL, connection);
             MySql.Data.MySqlClient.MySqlParameter myParameter = new MySql.Data.MySqlClient.MySqlParameter("@fs", SqlDbType.Image);
             myParameter.Value = fs;
             cmd.Parameters.Add(myParameter);
             try
             {
                 connection.Open();
                 int rows = cmd.ExecuteNonQuery();
                 return rows;
             }
             catch (MySql.Data.MySqlClient.MySqlException e)
             {
                 throw e;
             }
             finally
             {
                 cmd.Dispose();
                 connection.Close();
             }
         }
     }
 
     /// <summary>
     ///執(zhí)行一條計算查詢結(jié)果語句,返回查詢結(jié)果(object)。
     /// </summary>
     ///<param name="SQLString">計算查詢結(jié)果語句</param>
     ///<returns>查詢結(jié)果(object)</returns>
     public static object GetSingle(string SQLString)
     {
         using (MySqlConnection connection = new MySqlConnection(connectionString))
         {
             using (MySqlCommand cmd = new MySqlCommand(SQLString, connection))
             {
                 try
                 {
                     connection.Open();
                     object obj = cmd.ExecuteScalar();
                     if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
                     {
                         return null;
                     }
                     else
                     {
                         return obj;
                     }
                 }
                 catch (MySql.Data.MySqlClient.MySqlException e)
                 {
                     connection.Close();
                     throw e;
                 }
             }
         }
     }
     public static object GetSingle(string SQLString, int Times)
     {
         using (MySqlConnection connection = new MySqlConnection(connectionString))
         {
             using (MySqlCommand cmd = new MySqlCommand(SQLString, connection))
             {
                 try
                 {
                     connection.Open();
                     cmd.CommandTimeout = Times;
                     object obj = cmd.ExecuteScalar();
                     if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
                     {
                         return null;
                     }
                     else
                     {
                         return obj;
                     }
                 }
                 catch (MySql.Data.MySqlClient.MySqlException e)
                 {
                     connection.Close();
                     throw e;
                 }
             }
         }
     }
     /// <summary>
     /// 執(zhí)行查詢語句,返回MySqlDataReader ( 注意:調(diào)用該方法后,一定要對MySqlDataReader進行Close )
     /// </summary>
     /// <param name="strSQL">查詢語句</param>
     /// <returns>MySqlDataReader</returns>
     public static MySqlDataReader ExecuteReader(string strSQL)
     {
         MySqlConnection connection = new MySqlConnection(connectionString);
         MySqlCommand cmd = new MySqlCommand(strSQL, connection);
         try
         {
             connection.Open();
             MySqlDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
             return myReader;
         }
         catch (MySql.Data.MySqlClient.MySqlException e)
         {
             throw e;
         }  
 
     }
     /// <summary>
     /// 執(zhí)行查詢語句,返回DataSet
     /// </summary>
     /// <param name="SQLString">查詢語句</param>
     /// <returns>DataSet</returns>
     public static DataSet Query(string SQLString)
     {
         using (MySqlConnection connection = new MySqlConnection(connectionString))
         {
             DataSet ds = new DataSet();
             try
             {
                 connection.Open();
                 MySqlDataAdapter command = new MySqlDataAdapter(SQLString, connection);
                 command.Fill(ds, "ds");
             }
             catch (MySql.Data.MySqlClient.MySqlException ex)
             {
                 throw new Exception(ex.Message);
             }
             return ds;
         }
     }
     public static DataSet Query(string SQLString, int Times)
     {
         using (MySqlConnection connection = new MySqlConnection(connectionString))
         {
             DataSet ds = new DataSet();
             try
             {
                 connection.Open();
                 MySqlDataAdapter command = new MySqlDataAdapter(SQLString, connection);
                 command.SelectCommand.CommandTimeout = Times;
                 command.Fill(ds, "ds");
             }
             catch (MySql.Data.MySqlClient.MySqlException ex)
             {
                 throw new Exception(ex.Message);
             }
             return ds;
         }
     }
 
 
 
     #endregion
 
     #region 執(zhí)行帶參數(shù)的SQL語句
 
     /// <summary>
     /// 執(zhí)行SQL語句,返回影響的記錄數(shù)
     /// </summary>
     /// <param name="SQLString">SQL語句</param>
     /// <returns>影響的記錄數(shù)</returns>
     public static int ExecuteSql(string SQLString, params MySqlParameter[] cmdParms)
     {
         using (MySqlConnection connection = new MySqlConnection(connectionString))
         {
             using (MySqlCommand cmd = new MySqlCommand())
             {
                 try
                 {
                     PrepareCommand(cmd, connection, null, SQLString, cmdParms);
                     int rows = cmd.ExecuteNonQuery();
                     cmd.Parameters.Clear();
                     return rows;
                 }
                 catch (MySql.Data.MySqlClient.MySqlException e)
                 {
                     throw e;
                 }
             }
         }
     }
 
 
     /// <summary>
     /// 執(zhí)行多條SQL語句,實現(xiàn)數(shù)據(jù)庫事務(wù)。
     /// </summary>
     /// <param name="SQLStringList">SQL語句的哈希表(key為sql語句,value是該語句的MySqlParameter[])</param>
     public static void ExecuteSqlTran(Hashtable SQLStringList)
     {
         using (MySqlConnection conn = new MySqlConnection(connectionString))
         {
             conn.Open();
             using (MySqlTransaction trans = conn.BeginTransaction())
             {
                 MySqlCommand cmd = new MySqlCommand();
                 try
                 {
                     //循環(huán)
                     foreach (DictionaryEntry myDE in SQLStringList)
                     {
                         string cmdText = myDE.Key.ToString();
                         MySqlParameter[] cmdParms = (MySqlParameter[])myDE.Value;
                         PrepareCommand(cmd, conn, trans, cmdText, cmdParms);
                         int val = cmd.ExecuteNonQuery();
                         cmd.Parameters.Clear();
                     }
                     trans.Commit();
                 }
                 catch
                 {
                     trans.Rollback();
                     throw;
                 }
             }
         }
     }
     /// <summary>
     /// 執(zhí)行多條SQL語句,實現(xiàn)數(shù)據(jù)庫事務(wù)。
     /// </summary>
     /// <param name="SQLStringList">SQL語句的哈希表(key為sql語句,value是該語句的MySqlParameter[])</param>
     public static int ExecuteSqlTran(System.Collections.Generic.List<CommandInfo> cmdList)
     {
         using (MySqlConnection conn = new MySqlConnection(connectionString))
         {
             conn.Open();
             using (MySqlTransaction trans = conn.BeginTransaction())
             {
                 MySqlCommand cmd = new MySqlCommand();
                 try
                 { int count = 0;
                     //循環(huán)
                     foreach (CommandInfo myDE in cmdList)
                     {
                         string cmdText = myDE.CommandText;
                         MySqlParameter[] cmdParms = (MySqlParameter[])myDE.Parameters;
                         PrepareCommand(cmd, conn, trans, cmdText, cmdParms);
                         
                         if (myDE.EffentNextType == EffentNextType.WhenHaveContine || myDE.EffentNextType == EffentNextType.WhenNoHaveContine)
                         {
                             if (myDE.CommandText.ToLower().IndexOf("count(") == -1)
                             {
                                 trans.Rollback();
                                 return 0;
                             }
 
                             object obj = cmd.ExecuteScalar();
                             bool isHave = false;
                             if (obj == null && obj == DBNull.Value)
                             {
                                 isHave = false;
                             }
                             isHave = Convert.ToInt32(obj) > 0;
 
                             if (myDE.EffentNextType == EffentNextType.WhenHaveContine && !isHave)
                             {
                                 trans.Rollback();
                                 return 0;
                             }
                             if (myDE.EffentNextType == EffentNextType.WhenNoHaveContine && isHave)
                             {
                                 trans.Rollback();
                                 return 0;
                             }
                             continue;
                         }
                         int val = cmd.ExecuteNonQuery();
                         count += val;
                         if (myDE.EffentNextType == EffentNextType.ExcuteEffectRows && val == 0)
                         {
                             trans.Rollback();
                             return 0;
                         }
                         cmd.Parameters.Clear();
                     }
                     trans.Commit();
                     return count;
                 }
                 catch
                 {
                     trans.Rollback();
                     throw;
                 }
             }
         }
     }
     /// <summary>
     /// 執(zhí)行多條SQL語句,實現(xiàn)數(shù)據(jù)庫事務(wù)。
     /// </summary>
     /// <param name="SQLStringList">SQL語句的哈希表(key為sql語句,value是該語句的MySqlParameter[])</param>
     public static void ExecuteSqlTranWithIndentity(System.Collections.Generic.List<CommandInfo> SQLStringList)
     {
         using (MySqlConnection conn = new MySqlConnection(connectionString))
         {
             conn.Open();
             using (MySqlTransaction trans = conn.BeginTransaction())
             {
                 MySqlCommand cmd = new MySqlCommand();
                 try
                 {
                     int indentity = 0;
                     //循環(huán)
                     foreach (CommandInfo myDE in SQLStringList)
                     {
                         string cmdText = myDE.CommandText;
                         MySqlParameter[] cmdParms = (MySqlParameter[])myDE.Parameters;
                         foreach (MySqlParameter q in cmdParms)
                         {
                             if (q.Direction == ParameterDirection.InputOutput)
                             {
                                 q.Value = indentity;
                             }
                         }
                         PrepareCommand(cmd, conn, trans, cmdText, cmdParms);
                         int val = cmd.ExecuteNonQuery();
                         foreach (MySqlParameter q in cmdParms)
                         {
                             if (q.Direction == ParameterDirection.Output)
                             {
                                 indentity = Convert.ToInt32(q.Value);
                             }
                         }
                         cmd.Parameters.Clear();
                     }
                     trans.Commit();
                 }
                 catch
                 {
                     trans.Rollback();
                     throw;
                 }
             }
         }
     }
     /// <summary>
     /// 執(zhí)行多條SQL語句,實現(xiàn)數(shù)據(jù)庫事務(wù)。
     /// </summary>
     /// <param name="SQLStringList">SQL語句的哈希表(key為sql語句,value是該語句的MySqlParameter[])</param>
     public static void ExecuteSqlTranWithIndentity(Hashtable SQLStringList)
     {
         using (MySqlConnection conn = new MySqlConnection(connectionString))
         {
             conn.Open();
             using (MySqlTransaction trans = conn.BeginTransaction())
             {
                 MySqlCommand cmd = new MySqlCommand();
                 try
                 {
                     int indentity = 0;
                     //循環(huán)
                     foreach (DictionaryEntry myDE in SQLStringList)
                     {
                         string cmdText = myDE.Key.ToString();
                         MySqlParameter[] cmdParms = (MySqlParameter[])myDE.Value;
                         foreach (MySqlParameter q in cmdParms)
                         {
                             if (q.Direction == ParameterDirection.InputOutput)
                             {
                                 q.Value = indentity;
                             }
                         }
                         PrepareCommand(cmd, conn, trans, cmdText, cmdParms);
                         int val = cmd.ExecuteNonQuery();
                         foreach (MySqlParameter q in cmdParms)
                         {
                             if (q.Direction == ParameterDirection.Output)
                             {
                                 indentity = Convert.ToInt32(q.Value);
                             }
                         }
                         cmd.Parameters.Clear();
                     }
                     trans.Commit();
                 }
                 catch
                 {
                     trans.Rollback();
                     throw;
                 }
             }
         }
     }
     /// <summary>
     /// 執(zhí)行一條計算查詢結(jié)果語句,返回查詢結(jié)果(object)。
     /// </summary>
     /// <param name="SQLString">計算查詢結(jié)果語句</param>
     /// <returns>查詢結(jié)果(object)</returns>
     public static object GetSingle(string SQLString, params MySqlParameter[] cmdParms)
     {
         using (MySqlConnection connection = new MySqlConnection(connectionString))
         {
             using (MySqlCommand cmd = new MySqlCommand())
             {
                 try
                 {
                     PrepareCommand(cmd, connection, null, SQLString, cmdParms);
                     object obj = cmd.ExecuteScalar();
                     cmd.Parameters.Clear();
                     if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
                     {
                         return null;
                     }
                     else
                     {
                         return obj;
                     }
                 }
                 catch (MySql.Data.MySqlClient.MySqlException e)
                 {
                     throw e;
                 }
             }
         }
     }
 
     /// <summary>
     /// 執(zhí)行查詢語句,返回MySqlDataReader ( 注意:調(diào)用該方法后,一定要對MySqlDataReader進行Close )
     /// </summary>
     /// <param name="strSQL">查詢語句</param>
     /// <returns>MySqlDataReader</returns>
     public static MySqlDataReader ExecuteReader(string SQLString, params MySqlParameter[] cmdParms)
     {
         MySqlConnection connection = new MySqlConnection(connectionString);
         MySqlCommand cmd = new MySqlCommand();
         try
         {
             PrepareCommand(cmd, connection, null, SQLString, cmdParms);
             MySqlDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
             cmd.Parameters.Clear();
             return myReader;
         }
         catch (MySql.Data.MySqlClient.MySqlException e)
         {
             throw e;
         }
         //          finally
         //          {
         //              cmd.Dispose();
         //              connection.Close();
         //          }  
 
     }
 
     /// <summary>
     /// 執(zhí)行查詢語句,返回DataSet
     /// </summary>
     /// <param name="SQLString">查詢語句</param>
     /// <returns>DataSet</returns>
     public static DataSet Query(string SQLString, params MySqlParameter[] cmdParms)
     {
         using (MySqlConnection connection = new MySqlConnection(connectionString))
         {
             MySqlCommand cmd = new MySqlCommand();
             PrepareCommand(cmd, connection, null, SQLString, cmdParms);
             using (MySqlDataAdapter da = new MySqlDataAdapter(cmd))
             {
                 DataSet ds = new DataSet();
                 try
                 {
                     da.Fill(ds, "ds");
                     cmd.Parameters.Clear();
                 }
                 catch (MySql.Data.MySqlClient.MySqlException ex)
                 {
                     throw new Exception(ex.Message);
                 }
                 return ds;
             }
         }
     }
 
 
     private static void PrepareCommand(MySqlCommand cmd, MySqlConnection conn, MySqlTransaction trans, string cmdText, MySqlParameter[] cmdParms)
     {
         if (conn.State != ConnectionState.Open)
             conn.Open();
         cmd.Connection = conn;
         cmd.CommandText = cmdText;
         if (trans != null)
             cmd.Transaction = trans;
         cmd.CommandType = CommandType.Text;//cmdType;
         if (cmdParms != null)
         {
             foreach (MySqlParameter parameter in cmdParms)
             {
                 if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) &&
                     (parameter.Value == null))
                 {
                     parameter.Value = DBNull.Value;
                 }
                 cmd.Parameters.Add(parameter);
             }
         }
     }
 
     #endregion
 }

以上就是c# 向MySQL添加數(shù)據(jù)的兩種方法的詳細(xì)內(nèi)容,更多關(guān)于c# mysql添加數(shù)據(jù)的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C#Js時間格式化問題簡單實例

    C#Js時間格式化問題簡單實例

    這篇文章介紹了C#Js時間格式化問題簡單實例,有需要的朋友可以參考一下
    2013-10-10
  • C#實現(xiàn)FFT(遞歸法)的示例代碼

    C#實現(xiàn)FFT(遞歸法)的示例代碼

    FFT是數(shù)字信號處理中的重要算法。這篇文章將為大家詳細(xì)介紹一下如何利用C#語言實現(xiàn)FFT(遞歸法),文中的示例代碼講解詳細(xì),感興趣的可以了解一下
    2022-07-07
  • C#中is和as用法實例分析

    C#中is和as用法實例分析

    這篇文章主要介紹了C#中is和as用法實例分析,需要的朋友可以參考下
    2014-08-08
  • 基于WPF實現(xiàn)IP輸入控件

    基于WPF實現(xiàn)IP輸入控件

    這篇文章主要介紹了如何基于WPF實現(xiàn)簡單的IP輸入控件,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)或工作有一定幫助,需要的小伙伴可以參考一下
    2023-08-08
  • C#使用PuppeteerSharp庫的示例代碼

    C#使用PuppeteerSharp庫的示例代碼

    PuppeteerSharp 是一個用于在 .NET 平臺上控制無頭(Headless) Chrome 瀏覽器的庫,本文主要為大家詳細(xì)介紹了C#中使用PuppeteerSharp庫的工具類,需要的可以了解下
    2023-12-12
  • 基于WPF實現(xiàn)帶明細(xì)的環(huán)形圖表

    基于WPF實現(xiàn)帶明細(xì)的環(huán)形圖表

    這篇文章主要介紹了如何利用WPF繪制帶明細(xì)的環(huán)形圖表?,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)或工作有一定幫助,需要的可以參考一下
    2022-08-08
  • 基于C#實現(xiàn)Windows服務(wù)的方法詳解

    基于C#實現(xiàn)Windows服務(wù)的方法詳解

    在實際應(yīng)用過程中,有時候我們希望開發(fā)的程序,不需要界面,直接開機就可以長時間運行,這時候,我們可以考慮做成一個Windows服務(wù)。這篇文章跟大家介紹一下,如何基于C#實現(xiàn)Windows服務(wù)的創(chuàng)建、安裝、啟動、停止和卸載,需要的可以參考一下
    2022-09-09
  • C#獲取Excel文件所有文本數(shù)據(jù)內(nèi)容的示例代碼

    C#獲取Excel文件所有文本數(shù)據(jù)內(nèi)容的示例代碼

    獲取上傳的?EXCEL?文件的所有文本信息并存儲到數(shù)據(jù)庫里,可以進一步實現(xiàn)對文件內(nèi)容資料關(guān)鍵字查詢的全文檢索,有助于我們定位相關(guān)文檔,本文詳細(xì)介紹了C#獲取Excel文件所有文本數(shù)據(jù)內(nèi)容實現(xiàn)步驟和代碼,需要的朋友可以參考下
    2024-07-07
  • C# PictureBox圖片控件實現(xiàn)圖片交換

    C# PictureBox圖片控件實現(xiàn)圖片交換

    在c#中可以使用PictureBox控件來呈現(xiàn)圖像,本文主要介紹了C# PictureBox實現(xiàn)圖片交換,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • 基于WPF實現(xiàn)用戶頭像選擇器的示例代碼

    基于WPF實現(xiàn)用戶頭像選擇器的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何基于WPF實現(xiàn)用戶頭像選擇器,文中的示例代碼簡潔易懂,對我們學(xué)習(xí)WPF有一定幫助,感興趣的可以了解一下
    2022-07-07

最新評論