1. 程式人生 > >C#中執行mysql資料庫的儲存過程

C#中執行mysql資料庫的儲存過程

1、使用navicat建立了三個儲存過程:

pro_update_ip(不帶形參)

pro_insert_user(帶三個形參 textUser、textDevice、textTime 都是text型別)

pro_truncate_table(帶一個形參 truncateType 是int型別)

2、C#呼叫程式碼如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//引入新類
using MySql.Data.MySqlClient;
using System.Windows.Forms;
using System.Data;
using System.Data.SqlClient;


namespace serverManage.mysql.mysqlProce
{
    class mysqlProce
    {
        /*
        * Class:     
        * Method:    
        * parameter: 
        * Function:執行儲存過程pro_update_ip,不帶引數
        */
        public static void writeProcePublicIp()
        {
            MySqlConnection conMysql = getMySqlCon();
            MySqlCommand mySqlCommandPro = getSqlCommand("pro_update_ip", conMysql);//定義儲存過程介面
            mySqlCommandPro.CommandType = CommandType.StoredProcedure;//設定呼叫的型別為儲存過程             
            conMysql.Open();          
            mySqlCommandPro.ExecuteNonQuery();//執行儲存過程         
            conMysql.Close();
        }
        /*
        * Class:     
        * Method:    
        * parameter: 
        * Function:執行儲存過程pro_inert_user,帶引數textUser,textDevice,textTime
        */
        public static void writeProceInsertUser(string strUser,string strDevice,string strTime)
        {
            try
            {
                MySqlConnection conMysql = getMySqlCon();
                MySqlCommand mySqlCommandPro = getSqlCommand("pro_insert_user", conMysql);//定義儲存過程介面
                mySqlCommandPro.CommandType = CommandType.StoredProcedure;//設定呼叫的型別為儲存過程             
                
                MySqlParameter sqlParme;      
                //引數1               
                sqlParme = mySqlCommandPro.Parameters.AddWithValue("@textUser", "");      
                sqlParme.Direction = ParameterDirection.Input;        
                sqlParme.Value = strUser;
                //引數2        
                sqlParme = mySqlCommandPro.Parameters.AddWithValue("@textDevice", "");
                sqlParme.Direction = ParameterDirection.Input;
                sqlParme.Value =strDevice;
                //引數3     
                //sqlParme = mySqlCommandPro.Parameters.AddWithValue("@textTime", SqlDbType.NText);
                sqlParme = mySqlCommandPro.Parameters.AddWithValue("@textTime", "");
                sqlParme.Direction = ParameterDirection.Input;
                sqlParme.Value = strTime;


                conMysql.Open();
                mySqlCommandPro.ExecuteNonQuery();//執行儲存過程         
                conMysql.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            
        }
        /*
        * Class:     
        * Method:    
        * parameter: 
        * Function:執行儲存過程pro_truncate_table,帶引數truncateType
        */
        public static void writeProceTruncate(int strTruncateType)
        {
            try
            {
                MySqlConnection conMysql = getMySqlCon();
                MySqlCommand mySqlCommandPro = getSqlCommand("pro_truncate_table", conMysql);//定義儲存過程介面
                mySqlCommandPro.CommandType = CommandType.StoredProcedure;//設定呼叫的型別為儲存過程             


                MySqlParameter sqlParme;
                //引數1               
                sqlParme = mySqlCommandPro.Parameters.AddWithValue("@truncateType", SqlDbType.Int);
                sqlParme.Direction = ParameterDirection.Input;
                sqlParme.Value = strTruncateType;         


                conMysql.Open();
                mySqlCommandPro.ExecuteNonQuery();//執行儲存過程         
                conMysql.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }


        }
        /*
        * Class:     
        * Method:    MySqlConnection
        * parameter: 
        * Function: 建立mysql資料庫連結
        */
        public static MySqlConnection getMySqlCon()
        {
            MySqlConnection mysql = new MySqlConnection(DefineMysqlAddress.mysqlStr);
            return mysql;
        }
        /*
        * Class:     
        * Method:    getSqlCommand
        * parameter: 
        * Function: 建立執行命令語句物件
        */
        public static MySqlCommand getSqlCommand(String sql, MySqlConnection mysql)
        {
            MySqlCommand mySqlCommand = new MySqlCommand(sql, mysql);
            //MySqlCommand mySqlCommand = new MySqlCommand(sql);
            //mySqlCommand.Connection = mysql;
            return mySqlCommand;
        }
    }
}

相關推薦

C#執行mysql資料庫儲存過程

1、使用navicat建立了三個儲存過程: pro_update_ip(不帶形參) pro_insert_user(帶三個形參 textUser、textDevice、textTime 都是text型別) pro_truncate_table(帶一個形參 truncat

關於MySQL資料庫儲存過程的感想

以下只是學習路上的淺薄感想,如理解有所偏差,還請有識之士指正! 一、儲存過程意義理解     關於儲存過程,我的理解是對資料庫語言進行程式設計呼叫,就像Java程式碼類程式設計寫一個具有某種特定功能的方法去進行呼叫一樣。資料庫的儲存過程是一組相關聯的sql語句或函式,通過進行組合形成模

【動軟】批量生成mysql資料庫儲存過程的模板

人工敲程式碼好累呀!經過近段時間的研究,發現程式可以有snippet來自定義,儲存過程卻不能得到有效解決,心裡很堵! 近兩天發現【動軟】可以生成專案,網上有很多人有教程,我就不寫了。不過還是推薦一下吧:能用官方的,儘量用官方的,畢竟權威一點! 研究發現官方有關於模板的說明

Python 學習筆記-第24講:MySQL 資料庫儲存過程

1. ANACONDA(一個開源的Python發行版本) Anaconda指的是一個開源的Python發行版本,其包含了conda、Python等180多個科學包及其依賴項。 Conda是一個開源的包、環境管理器,可以用於在同一個機器上安裝不同版本的軟體包及其依賴,並能夠

C判斷Mysql資料庫是否存在表

先佔位,以後編輯 有四種方式進行判斷: 1. SHOW TABLES LIKE 'testtable';  這種方法在程式碼中不易實現.2. select TABLE_NAME from INFORMATION_SCHEMA.TABLES whereTABLE_SCHEMA

MySQL資料庫儲存過程

儲存過程(Stored Procedure)是在大型資料庫系統中,一組為了完成特定功能的SQL 語句集,儲存在資料庫中,經過第一次編譯後再次呼叫不需要再次編譯,使用者通過指定儲存過程的名字並給出引數(如果該儲存過程帶有引數)來執行它。儲存過程是資料庫

mysql資料庫——儲存過程

什麼是儲存過程?放上百度百科的解釋:儲存過程(Stored Procedure)是在大型資料庫系統中,一組為了完成特定功能的SQL 語句集,儲存在資料庫中,經過第一次編譯後再次呼叫不需要再次編譯,使用者通過指定儲存過程的名字並給出引數(如果該儲存過程帶有引數)來執行它。儲存過

EF core 2.0 呼叫MySql資料庫儲存過程

前提: database first,在資料庫建立好了儲存過程,然後在程式碼中直接呼叫 儲存過程名稱為 proceduertest,有一個輸入引數為 c varchar(100) 呼叫方法: string parm = "ss"; _context.Databas

MySQL資料庫-儲存過程詳解

儲存過程簡單來說,就是為以後的使用而儲存的一條或多條MySQL語句的集合。可將其視為批件,雖然它們的作用不僅限於批處理。在我看來, 儲存過程就是有業務邏輯和流程的集合, 可以在儲存過程中建立表,更新資料, 刪除等等。 MySQL基礎教程之儲存過程 儲存過程簡單來說,就

mybaits(查詢與別名、日誌框架顯示sql語句、物件屬性和資料庫表字段不匹配resultMap使用、mysql資料查詢分頁、執行sql和儲存過程、動態SQL語句)

主要是各種配置檔案,建議把整個專案搬到自己電腦上慢慢看。 建立maven專案 首先是各種配置檔案: pom.xml: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://m

MySQL使用儲存過程資料庫全部的表增加備用欄位

需求描述 要為資料庫裡的所有的表統一加上十六個備用欄位,前提是備用欄位名取表名前三位,拼接上備用1-16 , 16個欄位中,其中8個varchar, 4個int, 4個datetime 1.建立一個簡單的表 DROP TABLE customer_detail_info; C

mysql定時執行某一儲存過程,並實現mysql資料庫的定時備份

mysql儲存過程 1、儲存過程(Stored Procedure)是一組為了完成特定功能的SQL語句集,經編譯後儲存在資料庫中,使用者通過指定儲存過程的名字並給定引數(如果該儲存過程帶有引數)來呼叫執行它。 語法:CREATE PROCEDURE  過程名([[IN|OU

Mysql資料庫——每天的9點到11點,每隔1分鐘執行一次儲存過程

思路分析: 1、看到這個需求,最先想到的是使用Mysql的Event事件做一個定時任務 2、但是寫定時任務時發現,某一天9點到11點每隔一分鐘執行一次儲存過程很容易,但是再加上每天的9點到11點,僅僅用Mysql的事件就做不到了。可能有很多小夥伴會說,我寫個巢狀事件就可以了,寫法為每隔一天的

MySql一個簡單的儲存過程資料庫資料

今天有朋友問我用orcale儲存過程刷資料庫資料怎麼寫的,他的要求是兩張表,一張表裡面欄位為空的話,就從另外一張表中取資料更新這個表.orcale中寫完之後,突然想到在mysql中怎麼寫呢,於是在網上

Pythonmysql資料庫儲存富文字編輯器的內容

使用python 模組MySQLdb自帶的針對mysql的字元轉義函式 escape_string """insert into csdn_test(message) VALUES("%s");""" % (pymysql.escape_string(item['content']))

Mysql資料庫安裝過程忘記密碼

1.按照如下連結安裝mysql資料庫:http://www.jb51.net/article/134181.htm mysql 5.7.21 winx64安裝配置方法圖文教程 1、將下載好的mysql壓縮包解壓到安裝目錄下 2、新建檔案  my.ini,放置到mysql

MySQL儲存過程的3種迴圈,儲存過程的基本語法,ORACLE與MYSQL儲存過程/函式的使用區別,退出儲存過程方法

  學無止境 部落格園   首頁   新隨筆   聯絡   訂閱  管理 隨筆-1968  評論-103  文章-4&

資料庫儲存過程Mysql檢視,Mysql語句

相關連結: https://www.cnblogs.com/chenpi/p/5133648.html   SQL,結構化儲存語言,有自己的語法規則。儲存過程使得,一系列sql語句可以通過函式呼叫的形式進行使用。 sql語句是執行時編譯執行的,而儲存過程可以預編譯,效能快一些。 mysql&

oracle資料庫儲存過程的select語句的位置

導讀:在oracle資料庫儲存過程中如果用了select語句,要麼使用"select into 變數"語句要麼使用遊標,oracle不支援單獨的select語句。 先看下這個儲存過程: create or replace procedure pro_test  is  begin&n

從機房重構學習資料庫——儲存過程和觸發器

      開門見山,我也是在機房中學習使用儲存過程,看來大家的部落格,慢慢的使用,接觸了一段時間還是有點模糊。簡單總結一下。