存储过程中有多条sql语句,如“select”“update",那是有返回值,还是没有啊?如何调用呢

tian1982 2010-10-05 11:44:10
存储过程中有多条sql语句,如“select”“update",那是有返回值,还是没有啊?
如何实现调用呢?
是用 cmd.ExecuteNonQuery();
还是 cmd.ExecuteQuery();

...全文
1066 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
陈阿弟 2011-12-09
  • 打赏
  • 举报
回复
要好好学习,一些基础知识了.
keyalee 2010-11-06
  • 打赏
  • 举报
回复
一般都用cmd.ExecuteNonQuery()
这个可以返回影响的记录数,你可以参阅MSDN,上面说的很清楚
遊戲王千金 2010-11-06
  • 打赏
  • 举报
回复
多看一些ADO.NET操作数据库大部分最终都是传入SQL语句执行返回数据集或执行数据增删改。
关键将存储过程转为SQL语句弄懂就明白。
调用存储过程直接sql语名是 exec 存储过程名
调用需要用有返回值存储过程,的返回值去是判断的时候,
可以以下sql.

DECLARE @intR INT
DECLARE @chvR INT
EXEC spBAS_MsgDetectNewForSelf
@chvUserTypeID,
@intR OUTPUT,
@chvR OUTPUT
SELECT @intR AS Normal, @chvR AS newSys
XUIZHI 2010-11-06
  • 打赏
  • 举报
回复
你是想得到每条sql语句,操作的数据条数吗?
update table_name set ... where ...;
num:=sql%rowcount;

num 就是上面update所修改的记录数
zengxiongbin 2010-10-15
  • 打赏
  • 举报
回复
怎么9楼出现小日本的语言啊
sirzxj 2010-10-14
  • 打赏
  • 举报
回复
server=.;integrated security = true;database=db
tian1982 2010-10-06
  • 打赏
  • 举报
回复
谢谢大家的回复。

我是要写一个存储过程的数据层,不管什么存储过程都能调用这个数据层(DAL)。

wuyq11 2010-10-05
  • 打赏
  • 举报
回复
ExecuteNonQuery():执行SQL,返回一个整型变量,如果SQL是对数据库的记录进行操作,那么返回操作影响的记录条数
存储过程的中操作使用
ParameterDirection.Output; // 设置为输出参数
存储过程怎么写的
yujiayou 2010-10-05
  • 打赏
  • 举报
回复
在存储过程中你每个需要返回的sql定一个变量去接受返回的值,在代码中取出你定义的那个变量
huadream394430057 2010-10-05
  • 打赏
  • 举报
回复
cmd.ExecuteNonQuery();
这个有返回值,不过只对于update,insert,delete 有返回值,对select 没有返回值,如果需要,你可以用count .
wgwg888 2010-10-05
  • 打赏
  • 举报
回复
http://wgwg888.com
zxj2634 2010-10-05
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 binyao02123202 的回复:]
VB code
Dim dlgRtn As DialogResult '確認ダイアログの戻り値
Dim objCommand As OleDbCommand
Dim intOpDataCnt As Integer '出力データ件数

'確認ダイアログ
dlgRtn……
[/Quote]
up
君望永远 2010-10-05
  • 打赏
  • 举报
回复
Dim dlgRtn As DialogResult      '確認ダイアログの戻り値
Dim objCommand As OleDbCommand
Dim intOpDataCnt As Integer '出力データ件数

'確認ダイアログ
dlgRtn = MessageBox.Show("突合データ出力処理を行います。" & vbCrLf & "よろしいですか?", "実行確認", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If dlgRtn = Windows.Forms.DialogResult.No Then
Exit Sub
End If

'カーソルを砂時計にする
Me.Cursor = Cursors.WaitCursor

g_objOleDBConnection.Open() 'DB Open

objCommand = New OleDbCommand(g_strUserName & "." & cst_PROC_OUT_MATCHING, g_objOleDBConnection)
objCommand.CommandText = cst_PROC_OUT_MATCHING
objCommand.CommandType = CommandType.StoredProcedure
objCommand.Connection = g_objOleDBConnection 'コマンドを使用する接続用インスタンスを関係付ける

'INパラメータを設定
objCommand.Parameters.Add("wkOpPath", OleDbType.VarChar).Value = g_strFileOpDir

'アウトパラメータ(出力データ件数)の設定
Dim prmOut As New OleDbParameter("wkOpDataCnt", OleDbType.Integer)
prmOut.Direction = ParameterDirection.Output
objCommand.Parameters.Add(prmOut)

'ストアドプロシージャ実行
objCommand.ExecuteNonQuery()

'出力データ件数
intOpDataCnt = prmOut.Value.ToString()
  • 打赏
  • 举报
回复
存储过程贴上来吧、
t330wuxy 2010-10-05
  • 打赏
  • 举报
回复
用ExecuteNonquery()
whlcy 2010-10-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wuyq11 的回复:]

ExecuteNonQuery():执行SQL,返回一个整型变量,如果SQL是对数据库的记录进行操作,那么返回操作影响的记录条数
存储过程的中操作使用
ParameterDirection.Output; // 设置为输出参数
存储过程怎么写的
[/Quote]

up!!
teerhu 2010-10-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 yujiayou 的回复:]
在存储过程中你每个需要返回的sql定一个变量去接受返回的值,在代码中取出你定义的那个变量
[/Quote]
up

62,272

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧