社区
C#
帖子详情
c#中调用存储过程怎么获取返回值?
redant0
2003-08-08 07:43:42
c#中调用存储过程怎么获取返回值?
...全文
165
8
打赏
收藏
c#中调用存储过程怎么获取返回值?
c#中调用存储过程怎么获取返回值?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lovered
2003-08-09
打赏
举报
回复
学习:)
alaisalaix
2003-08-08
打赏
举报
回复
初始值:myConnection = new SqlConnection("你的连接字符串");
构造parameters并调用RunProcedure
如下:
public int InsertNews(int categoryID,string title,string body,DateTime releaseTime,
DateTime ExpireTime)
{
int rowsAffected;
SqlParameter[] parameters = {
new SqlParameter("@CategoryID", SqlDbType.Int, 4),
new SqlParameter("@Title", SqlDbType.VarChar, 30),
new SqlParameter("@Body", SqlDbType.Text, 16),
new SqlParameter("@ReleaseDate",SqlDbType.DateTime,8),
new SqlParameter("@ExpireDate",SqlDbType.DateTime,8),
new SqlParameter("@NewsID",SqlDbType.Int,4) };
parameters[0].Value = categoryID;
parameters[1].Value = title;
parameters[2].Value = body;
parameters[3].Value = releaseDate;
parameters[4].Value = ExpireDate;
parameters[5].Direction=ParameterDirection.Output;
return RunProcedure("vw_News_InsertNews", parameters,out rowsAffected);
}
现写的,不知道有没有什么语法错误,好热。你还可以从parameters[5].Value中返回新插入的NewsID,并且还可以通过rowsAffected的值知道是否已经插入到数据库中
fly_zhou
2003-08-08
打赏
举报
回复
// SQL参数输入参数
public SqlParameter MakeInParam(string ParamName, SqlDbType DbType, int Size,
object Value)
{
return MakeParam(ParamName, DbType, Size, ParameterDirection.Input, Value);
}
// SQL参数输出参数
public SqlParameter MakeOutParam(string ParamName, SqlDbType DbType, int Size)
{
return MakeParam(ParamName, DbType, Size, ParameterDirection.Output, null);
}
在存储过程中定义与这样:
Create Proc ProcName(
@aa varchar(20),
@bb varchar(30) output
)
此时你就用
MakeInParam( @aa, SqlDbTypes.Varchar, 20 );
MakeOutParam( @bb, SqlDbTypes.Varchar, 30 );
...
alaisalaix
2003-08-08
打赏
举报
回复
BuildCommand()如下:
public SqlCommand BuildCommand(string storedProcName, IDataParameter[] parameters)
{
SqlCommand command = new SqlCommand( storedProcName, myConnection );
command.CommandType = CommandType.StoredProcedure;
foreach (SqlParameter parameter in parameters)
{
command.Parameters.Add( parameter );
}
command.Parameters.Add( new SqlParameter ( "ReturnValue",SqlDbType.Int,4,
ParameterDirection.ReturnValue,
false,
0,
0,
string.Empty,
DataRowVersion.Default,
null ));
return command;
}
alaisalaix
2003-08-08
打赏
举报
回复
这是我曾写过的一个存储过程:
CREATE PROCEDURE vw_News_InsertNews
@CategoryID int,
@Title varchar(250),
@Body text,
@ReleaseDate datetime,
@ExpireDate datetime,
@NewsID int OUTPUT
AS
INSERT INTO News_News(CategoryID, Title, Body, ReleaseDate, ExpireDate)
VALUES (@CategoryID, @Title, @Body, @ReleaseDate, @ExpireDate)
SET @NewsID = @@IDENTITY
IF @@ERROR > 0
BEGIN
RAISERROR ('Insert of News failed', 16, 1)
RETURN 99
END
ELSE
BEGIN
RETURN 1
END
返回:99 or 1
下面代码方法可调用该存储过程,当然之前myConnection和parameters必须构造好
/// <summary>
/// 这一方法有利于执行Insert,Update和Delete查询,返回一个数值条件代码,
/// 来说明查询是成功还是失败。
/// </summary>
/// <param name="storedProcName">存储过程名</param>
/// <param name="parameters">命令对象的参数</param>
/// <param name="rowsAffected">执行存储过程所影响的行数</param>
/// <returns>返回参数中ReturnValue的值</returns>
protected int RunProcedure(string storedProcName, IDataParameter[] parameters, out int rowsAffected )
{
int result;
myConnection.Open();
SqlCommand command = BuildCommand( storedProcName, parameters );//这个函数是我自定义的,根据parameters构造一个命令对象并返回
rowsAffected = command.ExecuteNonQuery();
result = (int)command.Parameters["ReturnValue"].Value;
//result即为返回值
myConnection.Close();
return result;
}
CMIC
2003-08-08
打赏
举报
回复
up
fourfire29
2003-08-08
打赏
举报
回复
同意 Lovest(大法师)
Lovest
2003-08-08
打赏
举报
回复
public string GetPriceLst(string StorageID,string MaterialID,string FactoryID,string inprice,string verif)
{
try
{
firstCommand = new OleDbCommand("M_GetPrice");
firstCommand.CommandType = CommandType.StoredProcedure;
firstCommand.Parameters.Clear();
OleDbParameter param = firstCommand.Parameters.Add("@StorageID", OleDbType.VarChar);
param.Value = StorageID;
param = firstCommand.Parameters.Add("@MaterialID", OleDbType.VarChar);
param.Value = MaterialID;
param = firstCommand.Parameters.Add("@FactoryID", OleDbType.VarChar);
param.Value = FactoryID;
param = firstCommand.Parameters.Add("@inprice", OleDbType.VarChar);
param.Value = inprice;
param = firstCommand.Parameters.Add("@Verif", OleDbType.VarChar);
param.Value = verif;
param = firstCommand.Parameters.Add("@Strprice", OleDbType.VarChar,100);
param.Value = "";
param.Direction = ParameterDirection.Output;
OleDbConnection Conn =new OleDbConnection(ClsDbConnect.ConnectionString );
Conn.Open();
firstCommand.Connection = Conn;
firstCommand.ExecuteNonQuery();
return firstCommand.Parameters["@Strprice"].Value.ToString();
}
catch (System.Exception eFillDataSet)
{
return eFillDataSet.Message;
}
}
C#
程序设计与宿舍管理系统实战
为什么要学习
C#
?
C#
是微软的王牌语言,拥有接近20年的历史和广泛的应用。目前国内对
C#
的书籍和视频相对较少,但
C#
和.NET的发展前程是十分光明的,这体现在微软... 希望本套课程在你学习
C#
的过程
中
,可以对你有所帮助。
c#
调用
mysql
存储过程
返回值
_使用
C#
代码
获取
存储过程
返回值
/// /// 执行
存储过程
,返回"
返回值
"/// ///
存储过程
名///
存储过程
参数/// 执行
存储过程
的
返回值
public static int RunProcedureWithReturn(string storedProcName, IDataParameter[] parameters){using ...
C#
中
调用
存储过程
1、没有参数没有
返回值
2、有参数没有
返回值
...
存储过程
USE Northwind CREATE PROC novaluenoparameter AS SELECT * FROM products GO /// ///
c#
代码 方
C#
如何通过
存储过程
从数据库
中
获得数据
存储过程
就是在数据库
中
写好的函数,
C#
通过
调用
存储过程
来获得数据,可以在一定程度上提高数据库的安全性(将一些重要的数据封装了起来),那么如何在
C#
中
调用
存储过程
呢? 一、
存储过程
环境如下: 1、数据库...
.NET Core(
C#
) Entity Framework Core (ef Core) 执行
存储过程
或函数
获取
返回值
本文主要介绍.NET Core(
C#
)
中
,使用Entity Framework Core (ef Core)执行数据库
存储过程
或函数,来
获取
自定义属性或...原文地址:.NET Core(
C#
) Entity Framework Core (ef Core) 执行
存储过程
或函数
获取
返回值
...
C#
110,529
社区成员
642,572
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章