您的位置:首页技术文章
文章详情页

c# 向MySQL添加数据的两种方法

【字号: 日期:2023-10-05 12:31:40浏览:25作者:猪猪

下面介绍两种执行SQL命令的方法,并作出相应地总结,第一种介绍一种常规用法,下面进行做简要地分析,首先我们需要执行打开数据库操作首先创建一个MySqlConnection对象,在其构造函数中传入一个连接字符串,然后执行Open操作打开数据库,在正确打开数据库之后我们才能进行相关的动作,在ExecuteSQL这个函数中,

我们执行MySqlCommand myCmd = new MySqlCommand(CmdString, conn),从而创建MySqlCommand对象,其中传入的两个参数分别为sql命令和第一步建立的MySqlConnection对象,然后执行int Cmd = myCmd.ExecuteNonQuery()这一句执行相应的命令,并返回受影响的行数,最后我们需要关闭数据库连接,并释放非托管资源,从而完成整个数据库操作的过程;这个是比较常规的一种做法,也是我们使用比较多的一种形式。

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> /// 打开数据库连接 /// </summary> void Open() {try{ conn = new MySqlConnection(connstr); conn.Open();}catch (Exception ex){ System.Windows.Forms.MessageBox.Show(ex.Message);} } /// <summary> /// 关闭数据库连接 /// </summary> void Close() {conn.Close(); } /// <summary> /// 返回影响数据库的行数/// </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数据库查询失败!'); return 0;} } /// <summary> /// 返回数据表 /// </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数据库查询失败!'); return null;} }}

第二种方式,这里也贴出关键代码并做简要的分析:这里的关键是MySqlParameter[]数组的使用,我们在执行SQL语句的时候 DbHelperMySQL.ExecuteSql(strSql.ToString(),parameters);这里的parameters就是MySqlParameter[]数组,里面存储的是每个字段的数据,我们将在下面的代码中展示parameters的内容,

/// <summary>/// 增加一条数据/// </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', My

标签: MySQL 数据库
相关文章: