C#调用mysql查询存储过程

废话不多说,最近做了一个mysql的查询的存储过程,现在主要给大家看的是dao部分和存储过程的生成和使用,其他部分不太重要。

首先先看表,主要有两张表,一张是订单表,一张是车票表,两者是一对多的关系,通过orderId关联。


再看的是存储过程的生成,新建一个查询,不然每次更改都打一遍很麻烦,其实主要目的是生成函数,生成的函数才是我们真正调用来执行的。该查询是生成一个输入参数为peoplePhoneNumber, String类型的函数。


生成函数后是这样的。



有了函数,我们就要进行调试了。还是新建一个查询来调试。


=========以上是数据库层的测试==============

现在要说的是c#编写的dao,在编写前需要引用MySql.Data.dll ,可在网上下载。

public DataSet execution(string procedureName, IDictionary<string, string> Parameters)
        {
             MySqlConnection sqlConnection = this.getmysqlcon();
             
             MySqlCommand mysqlcom = new MySqlCommand(procedureName, sqlConnection);
             mysqlcom.CommandType = CommandType.StoredProcedure;//设置调用的类型为存储过程 
             DataSet ds = new DataSet();
             MySqlDataAdapter adapter = new MySqlDataAdapter();

             if (Parameters == null)
             {
                 return null;
             }
             foreach(string k in Parameters.Keys)
             {
                 mysqlcom.Parameters.Add(k, MySqlDbType.VarChar, 20).Value = Parameters[k];
             }

             sqlConnection.Open();//打开数据库连接
             mysqlcom.ExecuteNonQuery();
             adapter.SelectCommand = mysqlcom;
             adapter.Fill(ds, procedureName);
             mysqlcom.Dispose();
             sqlConnection.Close();
             sqlConnection.Dispose();
             return ds;

        }
        public  MySqlConnection getmysqlcon()
        {
            string M_str_sqlcon = ConfigurationManager.ConnectionStrings["MySqlServer"].ConnectionString.ToString();//获取Web.config中的连接字符串
            MySqlConnection myCon = new MySqlConnection(M_str_sqlcon);
            return myCon;
        }
   }


以上代码关键在

1. mysqlcom.CommandType = CommandType.StoredProcedure;//设置调用的类型为存储过程 

2. IDictionary<string, string> Parameters//我用dictionary来存储参数,但是有缺点,因为可以看到注入参数的格式是


mysqlcom.Parameters.Add(k, MySqlDbType.VarChar, 20).Value = Parameters[k]; //分别是参数名,参数类型,长度和参数值,所以单纯靠dictionary来存储参数是不够用的,这里取巧地把所以参数类型和长度都定为<span style="font-family: Arial, Helvetica, sans-serif;">MySqlDbType.VarChar, 20</span>


到这里就介绍完了,希望对你有用。



  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C是计算机编程语言中的一种。它是由丹尼斯·里奇(Dennis Ritchie)在20世纪70年代早期开发的。C语言具有高效、灵活和可移植的特点,广泛应用于系统软件、应用软件和嵌入式系统的开发中。 C语言是结构化的,它允许程序员将程序拆分成多个模块,每个模块执行特定的功能。这种模块化的结构有助于程序的可读性和维护性。 C语言支持大量的运算符和控制结构,包括条件语句(如if-else)和循环语句(如for和while),使得程序员可以进行复杂的逻辑操作和迭代。 C语言还提供了丰富的库函数,包括输入输出、字符串处理、数学运算等,这些库函数可以方便地调用,减少了编写代码的工作量。此外,C语言还支持指针操作,允许直接对内存进行访问,提高了程序的效率。 由于C语言的高效性和可移植性,它成为了许多操作系统和编译器的基础。许多重要的软件和系统都是使用C语言开发的,如Unix操作系统、Linux内核和MySQL数据库等。 虽然C语言有很多优点,但也有一些缺点。例如,它对程序员的编程能力要求较高,需要较多的细节处理。此外,C语言没有内置的面向对象的特性,对于大型项目的开发可能不够方便。 总的来说,C语言是一种强大而灵活的编程语言,它在计算机科学领域有着广泛的应用。无论是初学者还是专业开发人员,都应该学习和掌握C语言,因为它对于理解和实践其他编程语言都非常有帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值