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