u010384336 2016-04-07 10:51 采纳率: 90.9%
浏览 1738

C#连接mysql然后查询存储过程

C#连接mysql 然后查询一个名为userinfo的存储过程,传参5

sql:call userinfo(5);

这个是查询用户的信息的存储过程,执行这个sql,然后获得查询出来的结果,并且输出。

有没有大神写个demo我学习一下,谢谢!

//正常执行sql语句我会,不会查存储过程

  • 写回答

1条回答

  • threenewbee 2016-04-07 20:58
    关注
     using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data;
    using MySql.Data.MySqlClient;
    using System.ComponentModel;
    using System.Drawing;
    using System.Windows.Forms;
    using System.Diagnostics;
    
    //*************************** 
    //* * 功 能: 查询,添加,更新,删除,集数调用储存过程的封装,
    //* * 创 建 人:*****
    //* * 创 建 日 期:2013-8-10 11:30:30  
    //* * 状 态:********
    //* * 完 成 日 期:******
    //* * 修 改 人: *****
    //* * 修 改 日 期:   *****
    //* * 修 改 内 容:****
    //* * 备 注 描 述:    ********       
    //***************************
    
    namespace KFTV.DB
    {
       public  class BaseDB
        {
          static string strcon = KFTV.Properties.Settings.Default.kftvConnectionString;
           ///
           /// 查询的储存过程调用
           ///
           /// 储存过程名
           /// 查询条件的数组参数
           ///
           public static DataSet RunProcedureForQuery(string storedProcName, IDataParameter[] parameteres)
           {
               using (MySqlConnection conn = new MySqlConnection(strcon))
               {
                   DataSet ds = new DataSet();
                   try
                   {
                       conn.Open();
                       MySqlCommand cm = new MySqlCommand();
                       cm.Connection = conn;
                       cm.CommandText = storedProcName;
                       cm.CommandType = CommandType.StoredProcedure;
                       cm.Parameters.AddRange(parameteres);
                       MySqlDataAdapter adapter = new MySqlDataAdapter(cm);
                       adapter.Fill(ds);
                       conn.Close();
                       return ds;
                   }
                   catch
                   {
                       if (MessageBox.Show("执行出错了!\n\r可能服务器不稳定!\n\r请关闭后重试!", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes)
                       {
                           Application.Exit();
                       }
                       return null;
                   }
               } 
           }
           ///
           /// 更新,添加,删除的储存过程调用
           ///
           /// 储存过程名
           /// 更新,添加,删除所需参数
           ///
           public static int RunProcedureForNonQuery(string storedProcName, IDataParameter[] parameteres)
           {
               using (MySqlConnection conn = new MySqlConnection(strcon))
               {
                   int rowsAffected = 0;
                   try
                   {
                       conn.Open();
                       MySqlCommand cm = new MySqlCommand();
                       cm.Connection = conn;
                       cm.CommandText = storedProcName;
                       cm.CommandType = CommandType.StoredProcedure;
                       cm.Parameters.AddRange(parameteres);
                       rowsAffected = cm.ExecuteNonQuery();
                       conn.Close();
                   }
                   catch 
                   {
                       if (MessageBox.Show("执行出错了!\n\r可能服务器不稳定!\n\r请关闭后重试!", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes)
                       {
                           Application.Exit();
                       }
                   }
                   return rowsAffected;
               }
           }
           ///
           /// 求符合条件的总个数
           ///
           /// 储存过程名
           ///
           public static int RunProcedureForScaler(string storedProcName)
           {
               using (MySqlConnection conn = new MySqlConnection(strcon))
               {
                   int sum = 0;
                   try
                   {
                       conn.Open();
                       MySqlCommand cm = new MySqlCommand();
                       cm.Connection = conn;
                       cm.CommandText = storedProcName;
                       cm.CommandType = CommandType.StoredProcedure;
                       sum =(int)cm.ExecuteScalar();
                       conn.Close();
                   }
                   catch 
                   {
                       if (MessageBox.Show("执行出错了!\n\r可能服务器不稳定!\n\r请关闭后重试!", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes)
                       {
                           Application.Exit();
                       }
                   }
                   return sum;
               }
           }
    
      }
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 C#调用python代码(python带有库)
  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能
  • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面
  • ¥50 NT4.0系统 STOP:0X0000007B