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;
    }
一个简单的存储过程所有步骤完成。