.net中执行存储过程以及参数设置
2008-09-16 00:00
561 查看
con.Open();
SqlCommand cmd = new SqlCommand("delete_CarInfo", con); //存储过程delete_Carinfo
cmd.CommandType = CommandType.StoredProcedure; //指定Command命令执行类型
SqlParameter sp_1 = new SqlParameter("@CarID_1", SqlDbType.VarChar, 20);
//指定存储过程的执行时的参数
sp_1.Value = Car_ID;
cmd.Parameters.Add(sp_1);
cmd.ExecuteNonQuery();
con.Close();
*************************************************************************************************
执行存储过程的返回值:
因为一般都用T-SQL来执行数据库操作,偶尔现在转到用存储过程,竟然写不来调用过程的返回值了,查了很多资料,都不详细,或者没到点上,也许是我比较笨,呵呵。
C# 源代码
/// <summary>
/// 校验用户
/// </summary>
/// <param name="user">用户信息</param>
/// <returns></returns>
public static int VerifyUser(clsUser user)
{
int iRet;
string sql = String.Format("EXECUTE VerifyUser @myVerifyReader OUTPUT,'{0}','{1}'",user.username,user.password); //执行的T-SQL串
SqlCommand scmd = new SqlCommand(sql, conn);
scmd.Parameters.Add(new SqlParameter("@myVerifyReader",SqlDbType.Int));
scmd.Parameters["@myVerifyReader"].Direction = ParameterDirection.Output;
//
DBOpen(conn);
//在返回值上有问题
scmd.ExecuteNonQuery();
iRet = (int)scmd.Parameters["@myVerifyReader"].Value;
DBClose(conn);
return iRet;
}
SQL SERVER存储过程
------------------------------
/*
* VerifyUser 存储过程
* 用途:验证用户登陆
*/
CREATE PROCEDURE VerifyUser
(
@myVerifyReader int OUTPUT, --返回结果
@username varchar(50), --用户名
@userpassword varchar(50) --用户密码
)
AS
IF EXISTS(SELECT [id] FROM [Users] WHERE username = @username AND userpassword = @userpassword)
SET @myVerifyReader = 0 --通过验证
ELSE IF EXISTS(SELECT [id] FROM [Users] WHERE username = @username)
SET @myVerifyReader = 1 --用户存在,密码不正确
ELSE
SET @myVerifyReader = 2 --用户不存在
RETURN isnull(@myVerifyReader,3)
-------------------------------------------------
GO
SqlCommand cmd = new SqlCommand("delete_CarInfo", con); //存储过程delete_Carinfo
cmd.CommandType = CommandType.StoredProcedure; //指定Command命令执行类型
SqlParameter sp_1 = new SqlParameter("@CarID_1", SqlDbType.VarChar, 20);
//指定存储过程的执行时的参数
sp_1.Value = Car_ID;
cmd.Parameters.Add(sp_1);
cmd.ExecuteNonQuery();
con.Close();
*************************************************************************************************
执行存储过程的返回值:
因为一般都用T-SQL来执行数据库操作,偶尔现在转到用存储过程,竟然写不来调用过程的返回值了,查了很多资料,都不详细,或者没到点上,也许是我比较笨,呵呵。
C# 源代码
/// <summary>
/// 校验用户
/// </summary>
/// <param name="user">用户信息</param>
/// <returns></returns>
public static int VerifyUser(clsUser user)
{
int iRet;
string sql = String.Format("EXECUTE VerifyUser @myVerifyReader OUTPUT,'{0}','{1}'",user.username,user.password); //执行的T-SQL串
SqlCommand scmd = new SqlCommand(sql, conn);
scmd.Parameters.Add(new SqlParameter("@myVerifyReader",SqlDbType.Int));
scmd.Parameters["@myVerifyReader"].Direction = ParameterDirection.Output;
//
DBOpen(conn);
//在返回值上有问题
scmd.ExecuteNonQuery();
iRet = (int)scmd.Parameters["@myVerifyReader"].Value;
DBClose(conn);
return iRet;
}
SQL SERVER存储过程
------------------------------
/*
* VerifyUser 存储过程
* 用途:验证用户登陆
*/
CREATE PROCEDURE VerifyUser
(
@myVerifyReader int OUTPUT, --返回结果
@username varchar(50), --用户名
@userpassword varchar(50) --用户密码
)
AS
IF EXISTS(SELECT [id] FROM [Users] WHERE username = @username AND userpassword = @userpassword)
SET @myVerifyReader = 0 --通过验证
ELSE IF EXISTS(SELECT [id] FROM [Users] WHERE username = @username)
SET @myVerifyReader = 1 --用户存在,密码不正确
ELSE
SET @myVerifyReader = 2 --用户不存在
RETURN isnull(@myVerifyReader,3)
-------------------------------------------------
GO
相关文章推荐
- 执行字符串SQL语句--带有参数的存储过程以及 int类型的字符串变量注意事项
- main函数传参数以及执行过程
- 通过DeriveParameters设置存储过程的参数
- Mycat之日志分析跨分片事务以及存储过程的执行过程
- 数据库操作_连接SQL Server数据库示例;连接ACCESS数据库;连接到 Oracle 数据库示例;SqlCommand 执行SQL命令示例;SqlDataReader 读取数据示例;使用DataAdapter填充数据到DataSet;使用DataTable存储数据库表;将数据库数据填充到 XML 文件;10 使用带输入参数的存储过程;11 使用带输入、输出参数的存储过程示;12 获得数据库中表的数目和名称;13 保存图片到SQL Server数据库示例;14 获得插入记录标识号;Exce
- 在SQL SERVER中执行链接服务器上的带有参数的存储过程
- MySQL 存储过程带in和out参数以及PHP,PB如何调用的小例子
- dbutils 执行存储过程,dbutils 调用有输出参数的存储过程
- 水晶报表设置子报表存储过程参数(JAVA)
- 执行存储过程获取OUTput参数返回值
- 在数据库里执行 返回参数时,不是存储过程返回的值,而是跟在存储过程后面的那个@output变量
- 在.NET中如果不指定存储过程参数的长度出现的情况
- Hadoop MapReduce执行过程详解及MR中job参数及设置map和reduce的个数(带hadoop例子)
- .NET调用osql.exe执行sql脚本创建表和存储过程
- Oracle复合类型参数的存储过程以及JDBC调用
- ReportView如何使用构造SQL语句带参数的存储过程创建报表以及为rdlc传递参数
- 生成C#执行指定存储过程的参数
- oracle查看包存储过程,函数,以及存储过程参数,函数参数
- .net调用存储过程三 (含输出参数)
- 执行带参数的存储过程的方法II(相对通用)