您的位置:首页 > 数据库 > MySQL

.net下mysql存储过程返回自定义值(原创)

2015-11-16 15:42 573 查看
ado.net方法

public static string ExecuteQueryProc(string sConnStr, string sSql, Hashtable args)
{

MySqlCommand cmd = null;
try
{
cmd = new MySqlCommand(sSql);
cmd.Connection = new MySqlConnection(sConnStr);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection.Open();
MySqlParameter mypara = cmd.Parameters.AddWithValue("@ReValue", SqlDbType.NVarChar);

mypara.Direction = ParameterDirection.ReturnValue;
// cmd.Parameters.AddWithValue("@ReValue", "");
foreach (DictionaryEntry de in args)
{
if (de.Value.ToString() != null && de.Value.ToString() != "")
{
cmd.Parameters.AddWithValue("@" + de.Key.ToString(), de.Value.ToString());
}
}

cmd.ExecuteScalar();
string reValue = (string)cmd.Parameters["@ReValue"].Value.ToString();
return reValue;
}
finally
{
cmd.Connection.Close();
if (cmd != null) cmd.Dispose();
}
}


 存储过程

CREATE PROCEDURE customReturnValue(parName varchar(50),out ReValue varchar(50)
begin
declare reuturnName varchar(50);
SELECT name INTO reuturnName
FROM infosheet WHERE name = parName ;
SELECT reuturnName;

if reuturnName is null
then
insert into infosheet(name)
values (parName);
set ReValue =6;
else
set ReValue =5;

end if;

end


.net调用

Hashtable hasTable = new Hashtable();
hasTable.Add("parName", "小明");
string returnValue = MySQLHelper.ExecuteQueryProc(MySQLHelper.connectionString, "secondProc", hasTable);


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: