gpt4 book ai didi

c# - 用C#在MySQL中执行带参数的存储过程?

转载 作者:行者123 更新时间:2023-11-29 08:48:12 24 4
gpt4 key购买 nike

我正在使用 C# 来使用 VS 2010 Net Framework 3.5 和 MySQL 5.1

基本上,我有一些不同类型的参数(int、string、boolean 等),我需要将它们作为输入变量发送到 MySQL 参数。

我的应用程序的最后一层正在执行此操作:

            public Boolean ExecuteProcedure(string ProcedureName, List<SqlParameter> ParameterCollection) {

Command.CommandType = CommandType.StoredProcedure;
Command.CommandText = ProcedureName;
Command.Parameters.AddRange(ParameterCollection.ToArray<SqlParameter>());
Command.ExecuteNonQuery();
(... etc etc)

所以基本上我需要将前面层上的所有数据转换为 SQL 参数列表。

我的问题是:

  • 这是个好主意吗?也许我向执行程序函数?
  • 将不同类型的变量转换为 SQLParameter 的更好方法是什么?
  • 这种编程的使用可能存在哪些限制?

更新:

我的问题与层之间的通信有关。例如,前一层可以是...

                List<SqlParameter> INParameters = new List<SqlParameter>();
INParameters.Add(new SqlParameter("error_code",error_code));
INParameters.Add(new SqlParameter("error_description",error_description));
SysDB.ExecuteProcedure("sys_log_insert_error", INParameters);

这是一个好方法吗?

谢谢并致以亲切的问候,

最佳答案

如果您不希望顶层了解有关 SQL 或 SQLParameters 的任何信息,您可以传递更通用的内容,例如 KeyValuePair (http://msdn.microsoft.com/en-us/library/5tbh8a42.aspx)

我会改变ExecuteProcedure像这样的事情>>

public Boolean ExecuteProcedure(string ProcedureName, params KeyValuePair<String, Object>[] ParameterCollection) { ... }

您可能还有一些接受 KeyValuePair 的辅助方法您调用的电话 ExecuteProcedure将它们转换为SQLParameter然后您可以在查询中使用的对象..

我想你明白了..

关于c# - 用C#在MySQL中执行带参数的存储过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12011838/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com