首先创建数据库,建立一个用户登录表

2、visualStudio默认是不支持MySql的,要想通过Ado.Net 操作MySql

需要在管理NeGet包添加对MySql.Data  和 MySql.Data.Entity的引用

3、在app.Config中添加数据库连接信息

4、前端页面代码:

        <WrapPanel>
<Button Content="是否存在" Name="IsExitBtn" Click="IsExitBtn_Click"
Width="" Height="" ></Button>
<Button Content="新增" Name="AddBtn" Click="AddBtn_Click"
Width="" Height=""></Button>
<Button Content="修改" Name="UpdateBtn" Click="UpdateBtn_Click"
Width="" Height=""></Button>
<Button Content="删除" Name="DelBtn" Click="DelBtn_Click"
Width="" Height=""></Button>
<Button Content="批量删除" Name="BatchDelBtn" Click="BatchDelBtn_Click"
Width="" Height=""></Button>
<Button Content="批量获取" Name="BatchGetListBtn" Click="BatchGetListBtn_Click"
Width="" Height="" ></Button>
</WrapPanel>

5、cs后台代码:

          private void AddBtn_Click(object sender, RoutedEventArgs e)
{
#region 新增
StringBuilder addStrSql = new StringBuilder();
addStrSql.Append("insert into LoginUser(");
addStrSql.Append("UserId,Name,Age)");
addStrSql.Append(" values (");
addStrSql.Append("@UserId,@Name,@Age)"); MySqlParameter[] parameters = {
new MySqlParameter("@UserId", ),
new MySqlParameter("@Name", "张三"),
new MySqlParameter("@Age", )};
var add = new CaseUserData().Add(addStrSql.ToString(), parameters);
#endregion
} private void UpdateBtn_Click(object sender, RoutedEventArgs e)
{
#region 修改
StringBuilder updateStrSql = new StringBuilder();
updateStrSql.Append("update LoginUser set ");
updateStrSql.Append("Name=@Name,");
updateStrSql.Append("Age=@Age");
updateStrSql.Append(" WHERE UserId=@UserId");
MySqlParameter[] uparameters = {
new MySqlParameter("@UserId", ),
new MySqlParameter("@Name", "王五"),
new MySqlParameter("@Age", ) };
var update = new CaseUserData().Update(updateStrSql.ToString(), uparameters);
#endregion
} private void DelBtn_Click(object sender, RoutedEventArgs e)
{
#region 删除一条数据
StringBuilder DelStrSql = new StringBuilder();
DelStrSql.Append("delete from LoginUser ");
DelStrSql.Append(" where UserId=@ID ");
MySqlParameter[] delparameters = {
new MySqlParameter("@ID", ) };
var del = new CaseUserData().Delete(DelStrSql.ToString(), delparameters);
#endregion
} private void BatchDelBtn_Click(object sender, RoutedEventArgs e)
{
#region 批量删除数据
List<int> idLists = new List<int>();
string ids = string.Join(",", idLists); //List数组的每个元素加上引号,如("12","32","5456","876455")
string s1 = string.Format("'{0}'", ids.Replace(",", "','")); StringBuilder BatchDelStrSql = new StringBuilder();
BatchDelStrSql.Append("delete from LoginUser ");
BatchDelStrSql.Append(" where UserId in (" + s1 + ")");
var batchDel = new CaseUserData().DeleteList(BatchDelStrSql.ToString());
#endregion
} private void BatchGetListBtn_Click(object sender, RoutedEventArgs e)
{
#region 批量获取数据
StringBuilder batchGetStrSql = new StringBuilder();
batchGetStrSql.Append("select UserId,Name,Age FROM LoginUser ");
batchGetStrSql.Append(" where Age > 30");
var batchGetList = new CaseUserData().GetList(batchGetStrSql.ToString());
#endregion
} private void IsExitBtn_Click(object sender, RoutedEventArgs e)
{
#region 数据是否存在
StringBuilder strSql = new StringBuilder();
strSql.Append("select count(1) from LoginUser");
strSql.Append(" where UserId=@ID ");
var d = new CaseUserData().Exists(strSql.ToString(), );
#endregion
}

6、定义一些基本方法的接口:

 using System;
using System.Data;
using System.Collections.Generic;
using MvvmFuncationApp.DbHelper;
using MySql.Data.MySqlClient; namespace iPIS.Server.IDAL
{
/// <summary>
/// 接口层caseuserdata
/// </summary>
public interface ICaseUserData
{
#region 成员方法
/// <summary>
/// 是否存在该记录
/// </summary>
bool Exists(string StrSql,int ID);
/// <summary>
/// 增加一条数据
/// </summary>
bool Add(string strSql,MySqlParameter[] parameters);
/// <summary>
/// 更新一条数据
/// </summary>
bool Update(string strSql, MySqlParameter[] parameters);
/// <summary>
/// 删除一条数据
/// </summary>
bool Delete(string strSql, MySqlParameter[] parameters);
bool DeleteList(string strSql);
/// <summary>
/// 得到一个对象实体
/// </summary>
ParametersModel GetModel(int ID);
/// <summary>
/// 获得数据列表
/// </summary>
List<ParametersModel> GetList(string strWhere); #endregion 成员方法
#region MethodEx #endregion MethodEx
}
}

7、定义一个类,实现方法接口:

 using iPIS.Server.IDAL;
using MvvmFuncationApp.DbHelper;
using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.Data;
using System.Runtime.Serialization;
using System.Text;
using System.Xml.Linq; namespace iPIS.Server.Core
{
/// <summary>
/// 数据访问类
/// </summary>
public partial class CaseUserData : ICaseUserData
{
public CaseUserData()
{ }
/// <summary>
/// 是否存在该记录
/// </summary>
public bool Exists(string StrSql,int ID)
{
MySqlParameter[] parameters = {
new MySqlParameter("@ID", MySqlDbType.Int32,) };
parameters[].Value = ID; return DbHelperMySql.Exists(StrSql.ToString(), parameters);
} /// <summary>
/// 增加一条数据
/// </summary>
public bool Add(string StrSql, MySqlParameter[] parameters)
{
int rows = DbHelperMySql.ExecuteSql(StrSql.ToString(), parameters);
if (rows > )
{
return true;
}
else
{
return false;
}
} /// <summary>
/// 更新一条数据
/// </summary>
public bool Update(string StrSql, MySqlParameter[] parameters)
{
int rows = DbHelperMySql.ExecuteSql(StrSql.ToString(), parameters);
if (rows > )
{
return true;
}
else
{
return false;
}
} /// <summary>
/// 删除一条数据
/// </summary>
public bool Delete(string StrSql,MySqlParameter[] parameters)
{
int rows = DbHelperMySql.ExecuteSql(StrSql.ToString(), parameters);
if (rows > )
{
return true;
}
else
{
return false;
}
} /// <summary>
/// 批量删除数据
/// </summary>
public bool DeleteList(string BatchDelStrSql)
{
int rows = DbHelperMySql.ExecuteSql(BatchDelStrSql.ToString());
if (rows > )
{
return true;
}
else
{
return false;
}
} /// <summary>
/// 得到一个对象实体
/// </summary>
public ParametersModel GetModel(int ID)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("select UserId,Name,Age from LoginUser ");
strSql.Append(" where UserId=@ID ");
MySqlParameter[] parameters = {
new MySqlParameter("@ID", MySqlDbType.Int32,) };
parameters[].Value = ID; ParametersModel model = new ParametersModel();
using (var ds = DbHelperMySql.ExecuteReader(strSql.ToString(), parameters))
{
while (ds.Read())
{
return DataRowToModel(ds);
}
}
return null;
} /// <summary>
/// 得到一个对象实体
/// </summary>
public ParametersModel DataRowToModel(IDataReader row)
{
ParametersModel model = new ParametersModel();
if (row != null)
{
if (row["UserId"] != null && row["UserId"].ToString() != "")
{
model.ID = int.Parse(row["UserId"].ToString());
}
if (row["Name"] != null)
{
model.Name = row["Name"].ToString();
}
if (row["Age"] != null && row["Age"].ToString() != "")
{
model.Age = int.Parse(row["Age"].ToString());
} }
return model;
} /// <summary>
/// 获得数据列表
/// </summary>
public List<ParametersModel> GetList(string strSql)
{
using (var ds = DbHelperMySql.ExecuteReader(strSql.ToString()))
{
var list = new List<ParametersModel>();
while (ds.Read())
{
list.Add(DataRowToModel(ds));
}
return list;
}
}
}
}

8、数据库操作封装类:

 using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MySql.Data.MySqlClient; namespace MvvmFuncationApp.DbHelper
{
public abstract class DbHelperMySql
{
//数据库连接字符串(web.config来配置),可以动态更改connectionString支持多数据库.
public static string connectionString = System.Configuration.ConfigurationManager.AppSettings["ConnectionString"]; // "server=127.0.0.1;port=3306;database=lktest;uid=root;pwd=123456"; protected DbHelperMySql()
{
} #region 公用方法
/// <summary>
/// 得到最大值
/// </summary>
/// <param name="fieldName"></param>
/// <param name="tableName"></param>
/// <returns></returns>
public static int GetMaxId(string fieldName, string tableName)
{
string strsql = "select max(" + fieldName + ")+1 from " + tableName;
object obj = GetSingle(strsql);
return obj == null ? : int.Parse(obj.ToString());
} /// <summary>
/// 是否存在(基于MySqlParameter)
/// </summary>
/// <param name="strSql"></param>
/// <param name="cmdParms"></param>
/// <returns></returns>
public static bool Exists(string strSql, params MySqlParameter[] cmdParms)
{
var obj = GetSingle(strSql, cmdParms);
int cmdresult;
if ((Equals(obj, null)) || (Equals(obj, DBNull.Value)))
{
cmdresult = ;
}
else
{
cmdresult = int.Parse(obj.ToString());
}
return cmdresult != ;
}
#endregion #region 执行简单SQL语句 /// <summary>
/// 执行SQL语句,返回影响的记录数
/// </summary>
/// <param name="sqlString">SQL语句</param>
/// <returns>影响的记录数</returns>
public static int ExecuteSql(string sqlString)
{
using (var connection = new MySqlConnection(connectionString))
{
using (var cmd = new MySqlCommand(sqlString, connection))
{
try
{
connection.Open();
var rows = cmd.ExecuteNonQuery();
return rows;
}
catch (MySqlException e)
{
connection.Close();
throw e;
}
}
}
} public static int ExecuteSqlByTime(string sqlString, int times)
{
using (var connection = new MySqlConnection(connectionString))
{
using (var cmd = new MySqlCommand(sqlString, connection))
{
try
{
connection.Open();
cmd.CommandTimeout = times;
var rows = cmd.ExecuteNonQuery();
return rows;
}
catch (MySqlException e)
{
connection.Close();
throw e;
}
}
}
} /// <summary>
/// 执行多条SQL语句,实现数据库事务。
/// </summary>
/// <param name="sqlStringList">多条SQL语句</param>
public static int ExecuteSqlTran(List<String> sqlStringList)
{
using (var conn = new MySqlConnection(connectionString))
{
conn.Open();
var cmd = new MySqlCommand { Connection = conn };
var tx = conn.BeginTransaction();
cmd.Transaction = tx;
try
{
var count = ;
foreach (var strsql in sqlStringList.Where(strsql => strsql.Trim().Length > ))
{
cmd.CommandText = strsql;
count += cmd.ExecuteNonQuery();
}
tx.Commit();
return count;
}
catch (Exception ex)
{
tx.Rollback();
throw ex;
}
}
} /// <summary>
/// 执行带一个存储过程参数的的SQL语句。
/// </summary>
/// <param name="sqlString">SQL语句</param>
/// <param name="content">参数内容,比如一个字段是格式复杂的文章,有特殊符号,可以通过这个方式添加</param>
/// <returns>影响的记录数</returns>
public static int ExecuteSql(string sqlString, string content)
{
using (var connection = new MySqlConnection(connectionString))
{
var cmd = new MySqlCommand(sqlString, connection);
var myParameter = new MySqlParameter("@content", SqlDbType.NText) { Value = content };
cmd.Parameters.Add(myParameter);
try
{
connection.Open();
var rows = cmd.ExecuteNonQuery();
return rows;
}
catch (MySqlException e)
{
throw e;
}
finally
{
cmd.Dispose();
connection.Close();
}
}
} /// <summary>
/// 执行带一个存储过程参数的的SQL语句。
/// </summary>
/// <param name="sqlString">SQL语句</param>
/// <param name="content">参数内容,比如一个字段是格式复杂的文章,有特殊符号,可以通过这个方式添加</param>
/// <returns>影响的记录数</returns>
public static object ExecuteSqlGet(string sqlString, string content)
{
using (var connection = new MySqlConnection(connectionString))
{
var cmd = new MySqlCommand(sqlString, connection);
var myParameter = new MySqlParameter("@content", SqlDbType.NText) { Value = content };
cmd.Parameters.Add(myParameter);
try
{
connection.Open();
var obj = cmd.ExecuteScalar();
if ((Equals(obj, null)) || (Equals(obj, DBNull.Value)))
{
return null;
}
else
{
return obj;
}
}
catch (MySqlException e)
{
throw e;
}
finally
{
cmd.Dispose();
connection.Close();
}
}
} /// <summary>
/// 向数据库里插入图像格式的字段(和上面情况类似的另一种实例)
/// </summary>
/// <param name="strSql">SQL语句</param>
/// <param name="fs">图像字节,数据库的字段类型为image的情况</param>
/// <returns>影响的记录数</returns>
public static int ExecuteSqlInsertImg(string strSql, byte[] fs)
{
using (var connection = new MySqlConnection(connectionString))
{
var cmd = new MySqlCommand(strSql, connection);
var myParameter = new MySqlParameter("@fs", SqlDbType.Image) { Value = fs };
cmd.Parameters.Add(myParameter);
try
{
connection.Open();
var rows = cmd.ExecuteNonQuery();
return rows;
}
catch (MySqlException e)
{
throw e;
}
finally
{
cmd.Dispose();
connection.Close();
}
}
} /// <summary>
/// 执行一条计算查询结果语句,返回查询结果(object)。
/// </summary>
/// <param name="sqlString">计算查询结果语句</param>
/// <returns>查询结果(object)</returns>
public static object GetSingle(string sqlString)
{
using (var connection = new MySqlConnection(connectionString))
{
using (var cmd = new MySqlCommand(sqlString, connection))
{
try
{
connection.Open();
var obj = cmd.ExecuteScalar();
if ((Equals(obj, null)) || (Equals(obj, DBNull.Value)))
{
return null;
}
else
{
return obj;
}
}
catch (MySqlException e)
{
connection.Close();
throw e;
}
}
}
} public static object GetSingle(string sqlString, int times)
{
using (var connection = new MySqlConnection(connectionString))
{
using (var cmd = new MySqlCommand(sqlString, connection))
{
try
{
connection.Open();
cmd.CommandTimeout = times;
var obj = cmd.ExecuteScalar();
if ((Equals(obj, null)) || (Equals(obj, DBNull.Value)))
{
return null;
}
else
{
return obj;
}
}
catch (MySqlException e)
{
connection.Close();
throw e;
}
}
}
}
/// <summary>
/// 执行查询语句,返回MySqlDataReader ( 注意:调用该方法后,一定要对MySqlDataReader进行Close )
/// </summary>
/// <param name="strSql">查询语句</param>
/// <returns>MySqlDataReader</returns>
public static MySqlDataReader ExecuteReader(string strSql)
{
var connection = new MySqlConnection(connectionString);
var cmd = new MySqlCommand(strSql, connection);
try
{
connection.Open();
var myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return myReader;
}
catch (MySqlException e)
{
throw e;
} } /// <summary>
/// 执行查询语句,返回DataSet
/// </summary>
/// <param name="sqlString">查询语句</param>
/// <returns>DataSet</returns>
[Obsolete("不再使用该接口,请使用ExecuteReader(string strSql)")]
public static DataSet Query(string sqlString)
{
using (var connection = new MySqlConnection(connectionString))
{
var ds = new DataSet();
try
{
connection.Open();
var command = new MySqlDataAdapter(sqlString, connection);
command.Fill(ds, "ds");
}
catch (MySqlException ex)
{
throw new Exception(ex.Message);
}
return ds;
}
} /// <summary>
/// 执行查询语句,返回DataSet
/// </summary>
/// <param name="sqlString"></param>
/// <param name="times">超时时间</param>
/// <returns></returns>
[Obsolete("不再使用该接口,请使用ExecuteReader(string strSql)")]
public static DataSet Query(string sqlString, int times)
{
using (var connection = new MySqlConnection(connectionString))
{
var ds = new DataSet();
try
{
connection.Open();
var command = new MySqlDataAdapter(sqlString, connection) { SelectCommand = { CommandTimeout = times } };
command.Fill(ds, "ds");
}
catch (MySqlException ex)
{
throw new Exception(ex.Message);
}
return ds;
}
} /// <summary>
/// 删除案件
/// </summary>
/// <returns></returns>
public static int ExecuteProcedure(string caseid)
{
using (var connection = new MySqlConnection(connectionString))
{
using (var cmd = new MySqlCommand())
{
try
{
cmd.Connection = connection;
connection.Open();
cmd.CommandText = "sp_DeleteCaseInfo";
cmd.CommandType = CommandType.StoredProcedure; MySqlParameter id = new MySqlParameter("?id", MySqlDbType.VarChar, );
id.Value = caseid;
cmd.Parameters.Add(id); MySqlParameter result = new MySqlParameter("?result", MySqlDbType.Int32, );
result.Direction = ParameterDirection.Output;
cmd.Parameters.Add(result); cmd.ExecuteNonQuery();
int state = int.Parse(result.Value.ToString());
return state;
}
catch (MySqlException e)
{
throw e;
}
}
}
} #endregion #region 执行带参数的SQL语句 /// <summary>
/// 执行SQL语句,返回影响的记录数
/// </summary>
/// <param name="sqlString">SQL语句</param>
/// <param name="cmdParms">参数化</param>
/// <returns>影响的记录数</returns>
public static int ExecuteSql(string sqlString, params MySqlParameter[] cmdParms)
{
using (var connection = new MySqlConnection(connectionString))
{
using (var cmd = new MySqlCommand())
{
try
{
PrepareCommand(cmd, connection, null, sqlString, cmdParms);
var rows = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return rows;
}
catch (MySqlException e)
{
throw e;
}
}
}
} /// <summary>
/// 执行多条SQL语句,实现数据库事务。
/// </summary>
/// <param name="sqlStringList">SQL语句的哈希表(key为sql语句,value是该语句的MySqlParameter[])</param>
public static void ExecuteSqlTran(Hashtable sqlStringList)
{
using (var conn = new MySqlConnection(connectionString))
{
conn.Open();
using (var trans = conn.BeginTransaction())
{
var cmd = new MySqlCommand();
try
{
//循环
foreach (DictionaryEntry myDe in sqlStringList)
{
var cmdText = myDe.Key.ToString();
var cmdParms = (MySqlParameter[])myDe.Value;
PrepareCommand(cmd, conn, trans, cmdText, cmdParms);
var val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
}
trans.Commit();
}
catch
{
trans.Rollback();
throw;
}
}
}
} /// <summary>
/// 执行多条SQL语句,实现数据库事务。
/// </summary>
/// <param name="cmdList">SQL语句的哈希表(key为sql语句,value是该语句的MySqlParameter[])</param>
public static int ExecuteSqlTran(List<CommandInfo> cmdList)
{
using (var conn = new MySqlConnection(connectionString))
{
conn.Open();
using (var trans = conn.BeginTransaction())
{
var cmd = new MySqlCommand();
try
{
var count = ;
//循环
foreach (var myDe in cmdList)
{
string cmdText = myDe.CommandText;
var 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(") == -)
{
trans.Rollback();
return ;
} object obj = cmd.ExecuteScalar();
bool isHave = false;
if (obj == null && obj == DBNull.Value)
{
isHave = false;
}
isHave = Convert.ToInt32(obj) > ; if (myDe.EffentNextType == EffentNextType.WhenHaveContine && !isHave)
{
trans.Rollback();
return ;
}
if (myDe.EffentNextType == EffentNextType.WhenNoHaveContine && isHave)
{
trans.Rollback();
return ;
}
continue;
}
int val = cmd.ExecuteNonQuery();
count += val;
if (myDe.EffentNextType == EffentNextType.ExcuteEffectRows && val == )
{
trans.Rollback();
return ;
}
cmd.Parameters.Clear();
}
trans.Commit();
return count;
}
catch
{
trans.Rollback();
throw;
}
}
}
} /// <summary>
/// 执行多条SQL语句,实现数据库事务。
/// </summary>
/// <param name="sqlStringList">SQL语句的哈希表(key为sql语句,value是该语句的MySqlParameter[])</param>
public static void ExecuteSqlTranWithIndentity(System.Collections.Generic.List<CommandInfo> sqlStringList)
{
using (var conn = new MySqlConnection(connectionString))
{
conn.Open();
using (var trans = conn.BeginTransaction())
{
var cmd = new MySqlCommand();
try
{
var indentity = ;
//循环
foreach (var myDe in sqlStringList)
{
var cmdText = myDe.CommandText;
var cmdParms = (MySqlParameter[])myDe.Parameters;
foreach (var q in cmdParms)
{
if (q.Direction == ParameterDirection.InputOutput)
{
q.Value = indentity;
}
}
PrepareCommand(cmd, conn, trans, cmdText, cmdParms);
int val = cmd.ExecuteNonQuery();
foreach (var q in cmdParms)
{
if (q.Direction == ParameterDirection.Output)
{
indentity = Convert.ToInt32(q.Value);
}
}
cmd.Parameters.Clear();
}
trans.Commit();
}
catch
{
trans.Rollback();
throw;
}
}
}
} /// <summary>
/// 执行多条SQL语句,实现数据库事务。
/// </summary>
/// <param name="sqlStringList">SQL语句的哈希表(key为sql语句,value是该语句的MySqlParameter[])</param>
public static void ExecuteSqlTranWithIndentity(Hashtable sqlStringList)
{
using (var conn = new MySqlConnection(connectionString))
{
conn.Open();
using (var trans = conn.BeginTransaction())
{
var cmd = new MySqlCommand();
try
{
var indentity = ;
//循环
foreach (DictionaryEntry myDe in sqlStringList)
{
string cmdText = myDe.Key.ToString();
var 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>
/// 执行一条计算查询结果语句,返回查询结果(object)。
/// </summary>
/// <param name="sqlString">计算查询结果语句</param>
/// <param name="cmdParms">参数化</param>
/// <returns>查询结果(object)</returns>
public static object GetSingle(string sqlString, params MySqlParameter[] cmdParms)
{
using (var connection = new MySqlConnection(connectionString))
{
using (var cmd = new MySqlCommand())
{
try
{
PrepareCommand(cmd, connection, null, sqlString, cmdParms);
var obj = cmd.ExecuteScalar();
cmd.Parameters.Clear();
if ((Equals(obj, null)) || (Equals(obj, DBNull.Value)))
{
return null;
}
else
{
return obj;
}
}
catch (MySqlException e)
{
throw e;
}
}
}
} /// <summary>
/// 执行查询语句,返回MySqlDataReader ( 注意:调用该方法后,一定要对MySqlDataReader进行Close )
/// </summary>
/// <param name="sqlString">查询语句</param>
/// <param name="cmdParms">参数化</param>
/// <returns>MySqlDataReader</returns>
public static MySqlDataReader ExecuteReader(string sqlString, params MySqlParameter[] cmdParms)
{
var connection = new MySqlConnection(connectionString);
var cmd = new MySqlCommand();
try
{
PrepareCommand(cmd, connection, null, sqlString, cmdParms);
var myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
cmd.Parameters.Clear();
return myReader;
}
catch (MySqlException e)
{
throw e;
}
// finally
// {
// cmd.Dispose();
// connection.Close();
// } } /// <summary>
/// 执行查询语句,返回DataSet
/// </summary>
/// <param name="sqlString">查询语句</param>
/// <param name="cmdParms">参数化</param>
/// <returns>DataSet</returns>
[Obsolete("不再使用该接口,请使用ExecuteReader(string sqlString, params MySqlParameter[] cmdParms)")]
public static DataSet Query(string sqlString, params MySqlParameter[] cmdParms)
{
using (var connection = new MySqlConnection(connectionString))
{
var cmd = new MySqlCommand();
PrepareCommand(cmd, connection, null, sqlString, cmdParms);
using (var da = new MySqlDataAdapter(cmd))
{
var ds = new DataSet();
try
{
da.Fill(ds, "ds");
cmd.Parameters.Clear();
}
catch (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
}
}

9、数据库数据转模型:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace MvvmFuncationApp.DbHelper
{
/// <summary>
/// 案件关联用户自定义数据
/// </summary>
[Serializable]
public partial class ParametersModel
{
public ParametersModel()
{ }
#region Model
private int _id;
private string _DataID;
private int _age;
private string _name;
private string _userdata;
private string _extended1;
private string _extended2;
/// <summary>
///
/// </summary>
public int ID
{
set { _id = value; }
get { return _id; }
}
/// <summary>
/// 关联数据ID,DataType=1 案件id;DataType=2 图片id
/// </summary>
public string DataID
{
set { _DataID = value; }
get { return _DataID; }
}
/// <summary>
/// 数据类型。详见枚举值
/// </summary>
public int Age
{
set { _age = value; }
get { return _age; }
}
/// <summary>
/// 数据名称
/// </summary>
public string Name
{
set { _name = value; }
get { return _name; }
}
/// <summary>
/// 数据详细内容
/// </summary>
public string UserData
{
set { _userdata = value; }
get { return _userdata; }
}
/// <summary>
///
/// </summary>
public string Extended1
{
set { _extended1 = value; }
get { return _extended1; }
}
/// <summary>
///
/// </summary>
public string Extended2
{
set { _extended2 = value; }
get { return _extended2; }
}
#endregion Model } }

可以直接使用,亲测没问题。

VisualStudio 连接 MySql 实现增删查改的更多相关文章

  1. Python对MySQL进行增删查改

    python连接MySQL数据库:pymysql # 测试操作 import pymysql # 打开数据库 db = pymysql.connect("localhost", & ...

  2. Nhibernate入门篇连接Sqlserver的增删查改

    第一步:创建数据库 create table Emp( EmpId int primary key identity, EmpName ), EmpDate date ) 第二步:去官网下载:http ...

  3. Mysql常用增删查改及入门(二)

    常用:数据库常用就是DML:增删查改 1.增加数据: insert into 表名 values (值1,值2...); insert into 表名 (字段1,字段2) values (值1,值2) ...

  4. 后端Spring Boot+前端Android交互+MySQL增删查改(Java+Kotlin实现)

    1 前言&概述 这篇文章是基于这篇文章的更新,主要是更新了一些技术栈以及开发工具的版本,还有修复了一些Bug. 本文是SpringBoot+Android+MySQL的增删查改的简单实现,用到 ...

  5. nodejs连接mysql并进行简单的增删查改

    最近在入门nodejs,正好学习到了如何使用nodejs进行数据库的连接,觉得比较重要,便写一下随笔,简单地记录一下 使用在安装好node之后,我们可以使用npm命令,在项目的根目录,安装nodejs ...

  6. Java连接MySQL数据库及简单的增删查改操作

    主要摘自 https://www.cnblogs.com/town123/p/8336244.html https://www.runoob.com/java/java-mysql-connect.h ...

  7. node.js+mysql增删查改

    数据库和表: -- -- 数据库: `test` -- -- -------------------------------------------------------- -- -- 表的结构 ` ...

  8. php mysql增删查改

    php mysql增删查改代码段 $conn=mysql_connect('localhost','root','root');  //连接数据库代码 mysql_query("set na ...

  9. PHP与MYSQL结合操作——文章发布系统小项目(实现基本增删查改操作)

    php和mysql在一起几十年了,也是一对老夫老妻了,最近正在对他们的爱情故事进行探讨,并做了一个很简单的小东西——文章发布系统,目的是为了实现mysql对文章的基本增删查改操作 前台展示系统有:文章 ...

随机推荐

  1. git:GitLab代码回滚到特定版本

    在当前branch上多次commit代码并且push后,发现不符合要求,需要回滚到特定的版本.步骤如下: 1.查找commitId (1)用命令行打开git项目路径,输入git log命令查看comm ...

  2. Pyton项目打包成exe文件

    Python项目打包成exe文件 1 系统环境 windows版本: Win7 64位 python环境:Anaconda python版本:3.6 64位 pyinstaller版本:3.5 1 安 ...

  3. PHP 打印输出数组内容及结构 print_r 与 var_dump 函数

    利用 print_r() 函数可以打印输出整个数组内容及结构,按照一定格式显示键和元素.注意 print_r() 函数不仅是只用于打印,实际它是用于打印关于变量的易于理解的信息. 例子1 <?p ...

  4. 分享一些好用的 Chrome 扩展

    阅读本文大概需要 2.8 分钟. 前言 使用浏览器扩展程序可以使你的工作效率提高数倍不止,那么下面我就向大家分享一下我日常使用的扩展,可能大多数扩展大家都已经在使用了,不过也难免有一两个是你不知道的. ...

  5. SDN-based Network Management Solution

    SDN-based Network Management Solution 摘要: 在此项目中,我们开发了一种网络管理应用程序,以监视和控制由支持OpenFlow的交换机和支持SNMP的设备组成的企业 ...

  6. 第07组 Beta版本演示

    组长博客:求戳 队名:摇光 成员 学号 姓名 组长 031702203 容慧珺 杨明哲 031702202 高星 杨明哲 031702307 黄森敏 杨明哲 031702308 朱丽辰 杨明哲 031 ...

  7. uniapp - 微信公众号授权登录

    [缘由] 采用uniapp进行微信小程序和微信公众号双版本开发:考虑到用户唯一性,我们后端确定了以“unionid”.作为唯一标识. 有的小伙伴估计也是刚入这坑,我就简单说一下步骤流程   [摸索] ...

  8. ASP.NET与非托管DLL的那些事儿【转+增】

    https://www.cnblogs.com/yeahgis/archive/2011/11/12/2246341.html ASP.NET与非托管DLL的那些事儿 环境VS2010 语言:ISO ...

  9. Nginx配置简单负载均衡

    前提:因为本次需要两个软件在本机不同端口提供http服务,于是我准备一个tomcat在8080端口,另一个nodejs程序在3000端口,前者自不用提,后者可以到https://www.cnblogs ...

  10. SQLServer数据库之SQL Server 获取本周,本月,本年等时间内记录

    本文主要向大家介绍了SQLServer数据库之SQL Server 获取本周,本月,本年等时间内记录,通过具体的内容向大家展现,希望对大家学习SQLServer数据库有所帮助. datediff(we ...