C# 调用mysql存储过程
来源:互联网 发布:淘宝考试不 编辑:程序博客网 时间:2024/05/22 14:08
这是一个web api框架下的项目,主要是为了给他人调用。
public IDictionary<string, IList<v_order_menu>> GetDishes(string date, string windowid, int enjoyid) { IDictionary<string, IList<v_order_menu>> v_order_menu = new Dictionary<string, IList<v_order_menu>>(); StringBuilder sql = new StringBuilder(); sql.Append("proc_GetCurrentDishesByWindow"); MySqlParameter[] parameters = { new MySqlParameter("@windowNumber",MySqlDbType.VarChar,8), new MySqlParameter("@enjoyid",MySqlDbType.Int32), new MySqlParameter("@mydate",MySqlDbType.DateTime) }; parameters[0].Value = windowid; parameters[1].Value = enjoyid; parameters[2].Value = date; parameters[0].Direction = ParameterDirection.Input; parameters[1].Direction = ParameterDirection.Input; parameters[2].Direction = ParameterDirection.Input; DataSet ds = DbHelperMySQL.GetStoreProcedure(Convert.ToString(sql),parameters); IList<v_order_menu> order_menu = DbHelperMySQL.DataSetToIList<v_order_menu>(ds, "v_order_menu"); v_order_menu.Add("data", order_menu); return v_order_menu; }
这里是调用方法,接受三个参数,返回一个Dictrionnary类型的数据
public static DataSet GetStoreProcedure(string SQLString, params MySqlParameter[] cmdParms) { using (MySqlConnection connection = new MySqlConnection(Conn)) { using (MySqlCommand cmd = new MySqlCommand()) { PrepareCommand(cmd, connection, null, SQLString, cmdParms); cmd.CommandType = CommandType.StoredProcedure; using (MySqlDataAdapter da = new MySqlDataAdapter(cmd)) { DataSet ds = new DataSet(); try { da.Fill(ds, SQLString); 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); } } }
这是数据库操作类
这里我犯的错误,在传参时 new MySqlParameter("@windowNumber",MySqlDbType.VarChar,8), 这个@windowNumber 不能有空格
不然就会这样
"ExceptionMessage": "Parameter 'windowNumber' not found in the collection.",
百思不得其解 希望大家不要犯我这个错误
阅读全文
0 0
- C#调用MySQL存储过程
- C# 调用mysql存储过程
- mysql存储过程及c#调用标准版
- C#调用mysql存储过程方法
- C#调用mysql查询存储过程
- mysql+C#实战六:调用存储过程
- C#调用存储过程
- C#调用存储过程
- C#调用存储过程
- C#调用存储过程
- C#调用存储过程
- C# 调用存储过程
- c# 调用存储过程
- C#调用存储过程
- c# 调用 存储过程
- C# 调用存储过程
- C#调用存储过程
- C#调用存储过程
- Kotlin入门篇(五),Loop和Range,Kotlin中区间的定义和遍历
- linux查看进程线程数量命令:
- 解决Fragment中:Can not perform this action after onSaveInstanceState
- python3-PIL基本概念
- 自定义view group 1
- C# 调用mysql存储过程
- spak源码分析之sparkContext源码分析
- Java8新特性——内建的功能性接口
- 萌新的linux之旅24
- Can Place Flowers
- 为自己的人生负责
- 2017.8.19总结1-经济编码
- java8时间 yyyyMMddHHmmss格式转为日期
- Kotlin入门篇(六),list和map的使用