mysql存儲過程:
首先在數據庫執行一個存儲過程:
//創建名稱為gettest的存儲過程
create PROCEDURE gettest(in xusername VARCHAR(16), out xpassword VARCHAR(16)) BEGIN SELECT password into xpassword from tb_user WHERE username = xusername; end
參數說明:in為傳入參數,out為輸出參數。還要一個inout不常用
里面為sql語句
執行成功后,可通過call調用。查看是否成功
call gettest("admin",@password);
select @password;
此為我的存儲過程調用。
成功后,即可去VS里面應用。
/// <summary> /// 存儲結構 /// create PROCEDURE gettest(in xusername VARCHAR(16), out xpassword VARCHAR(16)) /// BEGIN /// SELECT password into xpassword from tb_user WHERE username = xusername; /// end /// </summary> /// <param name="username"></param> /// <returns></returns> public String getpassword(String username) { //返回值 string password = null; //連接數據庫 MySqlConnection mysqlcon = this.getConn(); mysqlcon.Open(); MySqlCommand mysqlCommand = new MySqlCommand(); mysqlCommand.Connection = mysqlcon; mysqlCommand.CommandText = "gettest";
//或者 "gettest"為對應存儲過程名稱。mysqlcon為數據庫連接
//MySqlCommand mysqlCommand = new MySqlCommand("gettest",mysqlcon);
//執行存儲過程 mysqlCommand.CommandType = CommandType.StoredProcedure; //設置參數 傳入參數mysql為? sql為@ MySqlParameter username_parameter = new MySqlParameter("?xusername",MySqlDbType.VarChar,16);
//賦值 username_parameter.Value = username; mysqlCommand.Parameters.Add(username_parameter); MySqlParameter password_parameter = new MySqlParameter("?xpassword",MySqlDbType.VarChar,16); mysqlCommand.Parameters.Add(password_parameter);
//輸出參數獲取方法 password_parameter.Direction = ParameterDirection.Output;
//執行 mysqlCommand.ExecuteNonQuery(); password = password_parameter.Value.ToString(); return password; }
一個簡單的存儲過程所有步驟完成。
