C#调用SQL中的存储过程中有output参数
2016-06-06 16:14
459 查看
想在存储过程中返回是否出错,回滚,就查了一些资料,以下方不整理一下
Alter proc Sp_AutoTenderTrialAll
@isAuto int ,
@id int,
@AdminId int ,
@AdminName varchar(250),
@output int output
as
Begin
set @output=1
end
/*************C#************/
using (SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString))
{
string strsql = string.Format("Sp_AutoTenderTrialAll");
SqlCommand cmd = new SqlCommand(strsql, conn); //链接
cmd.Parameters.Add(new SqlParameter("@isAuto", SqlDbType.Int));
cmd.Parameters["@isAuto"].Value = auto;
cmd.Parameters.Add(new SqlParameter("@id", SqlDbType.Int));
cmd.Parameters["@id"].Value = int.Parse(id);
cmd.Parameters.Add(new SqlParameter("@AdminId", SqlDbType.Int));
cmd.Parameters["@AdminId"].Value = adminId;
cmd.Parameters.Add(new SqlParameter("@AdminName", SqlDbType.VarChar));
cmd.Parameters["@AdminName"].Value = adminName;
cmd.Parameters.Add(new SqlParameter("@output", SqlDbType.Int));
cmd.Parameters["@output"].Direction = ParameterDirection.Output;
CommandType cmdType = CommandType.StoredProcedure;
cmd.CommandType = cmdType;
conn.Open();
cmd.ExecuteNonQuery();
return int.Parse(cmd.Parameters["@output"].Value.ToString());
}
/*************************************整理后*********************************************/
public int AutoTender(string id, string adminId, string adminName, int auto)
{
string strsql = string.Format("Sp_AutoTenderTrialAll");
SqlParameter[] sqlParam = new SqlParameter[]{
new SqlParameter("@isAuto",SqlDbType.Int){Value=auto},
new SqlParameter("@id",SqlDbType.Int){Value=id},
new SqlParameter("@AdminId",SqlDbType.Int){Value=adminId},
new SqlParameter("@AdminName",SqlDbType.VarChar){Value=adminName},
new SqlParameter("@output",SqlDbType.Int,4,ParameterDirection.Output,false,0,0,string.Empty,DataRowVersion.Default,null)
};
return DataBase.SpExecuteNonQueryOut(strsql, CommandType.StoredProcedure, sqlParam);
}
/// <summary>
/// 存储过程
/// </summary>
/// <param name="cmdText"></param>
/// <param name="cmdType"></param>
/// <param name="values"></param>
/// <returns></returns>
public static int SpExecuteNonQueryOut(string cmdText, CommandType cmdType, SqlParameter[] values)
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand(cmdText, conn); //链接
cmd.CommandType = cmdType;
if (values != null)
{
cmd.Parameters.AddRange(values);
}
conn.Open();
int result = -1;
cmd.ExecuteNonQuery();
result = int.Parse(cmd.Parameters["@output"].Value.ToString());
cmd.Dispose();
conn.Close();
return result;
}
}
Alter proc Sp_AutoTenderTrialAll
@isAuto int ,
@id int,
@AdminId int ,
@AdminName varchar(250),
@output int output
as
Begin
set @output=1
end
/*************C#************/
using (SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString))
{
string strsql = string.Format("Sp_AutoTenderTrialAll");
SqlCommand cmd = new SqlCommand(strsql, conn); //链接
cmd.Parameters.Add(new SqlParameter("@isAuto", SqlDbType.Int));
cmd.Parameters["@isAuto"].Value = auto;
cmd.Parameters.Add(new SqlParameter("@id", SqlDbType.Int));
cmd.Parameters["@id"].Value = int.Parse(id);
cmd.Parameters.Add(new SqlParameter("@AdminId", SqlDbType.Int));
cmd.Parameters["@AdminId"].Value = adminId;
cmd.Parameters.Add(new SqlParameter("@AdminName", SqlDbType.VarChar));
cmd.Parameters["@AdminName"].Value = adminName;
cmd.Parameters.Add(new SqlParameter("@output", SqlDbType.Int));
cmd.Parameters["@output"].Direction = ParameterDirection.Output;
CommandType cmdType = CommandType.StoredProcedure;
cmd.CommandType = cmdType;
conn.Open();
cmd.ExecuteNonQuery();
return int.Parse(cmd.Parameters["@output"].Value.ToString());
}
/*************************************整理后*********************************************/
public int AutoTender(string id, string adminId, string adminName, int auto)
{
string strsql = string.Format("Sp_AutoTenderTrialAll");
SqlParameter[] sqlParam = new SqlParameter[]{
new SqlParameter("@isAuto",SqlDbType.Int){Value=auto},
new SqlParameter("@id",SqlDbType.Int){Value=id},
new SqlParameter("@AdminId",SqlDbType.Int){Value=adminId},
new SqlParameter("@AdminName",SqlDbType.VarChar){Value=adminName},
new SqlParameter("@output",SqlDbType.Int,4,ParameterDirection.Output,false,0,0,string.Empty,DataRowVersion.Default,null)
};
return DataBase.SpExecuteNonQueryOut(strsql, CommandType.StoredProcedure, sqlParam);
}
/// <summary>
/// 存储过程
/// </summary>
/// <param name="cmdText"></param>
/// <param name="cmdType"></param>
/// <param name="values"></param>
/// <returns></returns>
public static int SpExecuteNonQueryOut(string cmdText, CommandType cmdType, SqlParameter[] values)
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand(cmdText, conn); //链接
cmd.CommandType = cmdType;
if (values != null)
{
cmd.Parameters.AddRange(values);
}
conn.Open();
int result = -1;
cmd.ExecuteNonQuery();
result = int.Parse(cmd.Parameters["@output"].Value.ToString());
cmd.Dispose();
conn.Close();
return result;
}
}
相关文章推荐
- flume+kafka+storm+mysql架构设计
- Zabbix实战企业监控之MySQL监控
- MySQL主从同步监控
- 单点CRM系统 本地Mysql 数据库导入FTP空间
- mysql设计规范之运维规范
- 第114课:SparkStreaming+Kafka+Spark SQL+TopN+Mysql+KafkaOffsetMonitor电商广告点击综合案例实战(详细内幕版本)
- MySQL语法(二 )--update--and 和 or--order by--delect(数据的操作)----drop(库的操作)
- Mysql在大型网站的应用架构演变
- linux下ftp和ftps以及ftp基于mysql虚拟用户认证服务器的搭建
- PL/SQL Developer 终于支持 64 位了
- Oracle数据库安装完成后,点击sqlplus.exe或者客户端PLSQL Developer,总是显示无法登录解决方法
- Enterprise Solution 3.1 企业应用开发框架 .NET ERP/CRM/MIS 开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms
- SQLiteOpenHelper/SQLiteDatabase/Cursor源码解析
- Mysql命令drop table:删除数据表
- Mysql命令drop database:删除数据库
- sql limit和top
- postgresql 数据库 中间件 pgoneproxy
- goldengate for sqlserver 日志暴涨的解决办法
- vsftp+mysql配置方法
- mysql工具链--devops