Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >重用SqlCommand?

重用SqlCommand?
EN

Stack Overflow用户
提问于 2009-03-21 17:49:00
回答 2查看 36K关注 0票数 53

我真的不确定这是否可能。

我目前正在做一个大学项目,我有一个使用存储过程的函数。我想知道是否可以使用相同的SqlCommand实例,并应用更新后的参数,在相同的函数中再次调用存储过程。

假设我的代码中有这样的内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
myConStr = ConfigurationManager.ConnectionStrings["MyConnString"].ConnectionString;
myConn = new SqlConnection(myConStr);
myCommand = new System.Data.SqlClient.SqlCommand("team5UserCurrentBooks3", myConn); 
myCommand.CommandType = CommandType.StoredProcedure;
myCommand.Parameters.AddWithValue("@book_id", bookID);
myCommand.Parameters.AddWithValue("@user_id", userID);

try
{
    myConn.Open();
    myCommand.ExecuteNonQuery();

是否可以更新MyCommand的参数并再次调用存储过程?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-03-21 18:02:10

是。您需要确保在每次调用之间调用myCommand.Parameters.Clear以便转储参数,但是没有什么可以阻止您重用对象。(我不经常使用C#,所以文本中可能有一两个错误)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
myConStr = ConfigurationManager.ConnectionStrings["MyConnString"].ConnectionString;
myConn = new SqlConnection(myConStr);
myConn.Open();

myCommand = new System.Data.SqlClient.SqlCommand("team5UserCurrentBooks3", myConn); 
myCommand.CommandType = CommandType.StoredProcedure;
myCommand.Parameters.AddWithValue("@book_id", bookID);
myCommand.Parameters.AddWithValue("@user_id", userID);
myCommand.ExecuteNonQuery();

myCommand.Parameters.Clear();
myCommand.CommandText= "NewStoredProcedureName";
myCommand.CommandType = CommandType.StoredProcedure;
myCommand.Parameters.AddWithValue("@foo_id", fooId);
myCommand.Parameters.AddWithValue("@bar_id", barId);
mycommand.ExecuteNonQuery();

myCommand.Parameters.Clear();
myCommand.CommandText = " SELECT * FROM table1 WHERE ID = @TID;"
myCommand.CommandType = CommandType.Text;
myCommand.Parameters.AddWithValue("@tid", tId);
SqlReader rdr;
rdr = myCommand.ExecuteReader();
票数 62
EN

Stack Overflow用户

发布于 2009-03-21 18:03:19

是!你绝对可以做到。在函数中,您也可以重用相同的连接(我不建议在更大的范围内重用connection对象,但这是可能的)。

你也可以这样做:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
myConStr = ConfigurationManager.ConnectionStrings["MyConnString"].ConnectionString;
using (var cn = new SqlConnection(myConStr) )
using (var cmd = new SqlCommand("team5UserCurrentBooks3", cn) ) 
{
    cmd.CommandType = CommandType.StoredProcedure; 
    cmd.Parameters.Add("@user_id", SqlDbType.Int).Value = userID;
    cmd.Parameters.Add("@book_id", SqlDbType.Int);
    cn.Open();

    for(int i = 0; i<10; i++)
    {
        cmd.Parameters["@book_id"].Value = i;
        cmd.ExecuteNonQuery();
    }
}

这将运行查询10次,并在每次执行时使用相同的user_id,但要更改book_idusing块就像在try/catch中包装您的连接以确保它是关闭的。

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/670407

复制
相关文章
python中bool函数_bool()函数以及Python中的示例
bool() function is used to convert a given value to the Boolean value (True or False) as per the standard truth testing procedures. It accepts a value (like an integer, list, maps, etc) and converts it into a Boolean value.
全栈程序员站长
2022/09/05
1.6K0
python中bool()函数
bool是Boolean的缩写,只有真(True)和假(False)两种取值 bool函数只有一个参数,并根据这个参数的值返回真或者假。
全栈程序员站长
2022/09/03
1.3K0
Github Actions, yes! + docker, yes yes!
最近点开了一下Github Actions的技能树,在说真香之前,不得不说一下我踩过的这些前置任务的坑。找到这篇文章看的朋友大概也知道Github Actions是Github上的持续集成服务,它允许你在一些节点上(如提交代码,特定时间等)触发一些操作。这里我们实现自动部署应用到自己的服务器。
前端小哥哥
2023/05/04
3260
Github Actions, yes! + docker, yes yes!
python中bool函数用法_在python中bool函数的取值方法「建议收藏」
2.当对字符串使用bool函数时,对于没有值的字符串(也就是None或者空字符串)返回False,否则返回True。
全栈程序员站长
2022/08/12
2.9K0
python中string和bool的转
python中字符串“True” 和 “False"转为bool类型时, 不能通过bool(xx)强转。
py3study
2020/01/08
1.6K0
iOS检测是否有网络连接
如果你的工程里面是用的AFNetworking请求网络数据的话,那么可以直接使用 AFNetworkReachabilityManager.h来判断网络状态!如果是用的ASI的话,里面自带的有Reachability.m和 Reachability.h这两个类,下面会分开介绍这两个的使用方法。
用户7705674
2021/10/29
1.6K0
Flutter Boost 接入实践(iOS 篇)
我们给 Android 接入 Flutter Boost 之后,现在我们来看看如何给 iOS 工程(OC)接入 Flutter Boost。
QQ音乐前端团队
2020/04/22
2.9K0
C++基础----C++ 布尔类型(bool)及BOOL和bool的区别
C语言里面是没有bool(布尔)类型的,C++里面才有,这就是说,在C++里面使用bool类型是没有问题的。bool类型有只有两个值:true =1 、false=0。
Twcat_tree
2022/11/29
2.3K0
iOS-UIApplication详解iOS-UIApplication详解
iOS-UIApplication详解 ✨建议收藏,用到时候一查就明白了 xx_cc UIApplication简介 UIApplication对象是应用程序的象征。 每一个应用程序都有自己的UIApplication对象,而且是单例。 一个iOS程序启动后创建的第一个对象就是UIApplication对象。 通过UIApplication *app = [UIApplication sharedApplication];可以获得这个单例对象。 利用UIApplication对象能进行一些应用级别的操作。
xx_Cc
2018/05/10
1.6K0
iOS iOS与html进行交互
实现的 效果就是上边那样:首先通过webview 进行网络请求 然后进行显示。          然后点击下一页的按钮 通过js的响应显示另一个网页          最后通过下一页的按钮可以返回到首页。     本文仅仅是h5跟ios 的交互的入门 所以没有做细致的描述。 首先先说一下思路:我的项目中是那样的:首先h5从后台拿到数据,然后我请求h5的界面,然后通过h5的按钮进行选择,通过ios控制按钮到那个界面。 这个小demo不涉及数据传输,只是界面的交互。 1 我自己写了两个小网页。 代码如下 首页的
用户1219438
2018/02/01
2.4K0
iOS将单个控制器设为横屏、页面横屏
最近项目中拍照页面需要设置为横屏,需求如下 进入拍摄页面后将页面强制设为横屏,拍照结束后回复竖屏。 简述为:A->B(横屏) 屏幕快照 2016-07-29 下午5.50.02.png 1. 首先在
BY
2018/05/11
2.7K0
iOS13 Scene Delegate
iOS13以后,SceneDelegate将负责AppDelegate的某些功能。 window(窗口)的概念被window(场景)的概念所代替, 一个scene现在可以作为您应用程序的用户界面和内容的载体。iOS13以前一个应用程序可以有不止一个window,同样现在一个应用程序也可以有不止一个scene。
conanma
2021/11/04
5.6K0
iOS开发之抽屉效果实现
  说道抽屉效果在iOS中比较有名的第三方类库就是PPRevealSideViewController。一说到第三方类库就自然而然的想到我们的CocoaPods,今天的博客中用CocoaPods引入PPRevealSideViewController,然后在我们的工程中以代码结合storyboard来做出抽屉效果。   一.在工程中用CocoaPods引入第三方插件PPRevealSideViewController.     (1).在终端中搜索PPRevealSideViewController的版本
lizelu
2018/01/11
1.9K0
iOS开发之抽屉效果实现
iOS 微信支付开发流程
项目中要用到支付功能,需要支付宝支付、支付宝网页支付、微信支付、银联支付、Apple_pay,所以打算总结一下,方便以后的查阅,也方便大家, 用到的地方避免再次被坑。 今天我们就主要介绍一下微信支付,其他支付也写了对应教程,并且给出了连接。
网罗开发
2021/01/29
1.6K0
iOS 微信支付开发流程
c语言调用bool函数,C语言中 bool的用法
布尔型变量可用于逻辑表达式,也就是“或”“与”“非”之类的逻辑运算和大于小于之类的关系运算,逻辑表达式运算结果为真或为假。
全栈程序员站长
2022/09/01
3.5K0
c语言调用bool函数,C语言中 bool的用法
iOS开发技巧篇
在iOS开发中,有一些技巧可以提高程序猿的开发效率。 1,Xcode真机调试 Xcode 7推出之前,想要真机调试,iOS开发者必须花$99购买苹果开发者账号,而且步骤繁琐,需要下载证书认证。随着苹果公司推出了Xcode 7之后,大幅度的简化了真机调试的步骤。但是如果要测试推送等,还是需要证书的。 第一步:准备Mac电脑,Apple ID, iPhone手机,Xcode 集成开发环境; 第二步:打开Xcode选择屏幕左上角Xcode->Preferences->Account。 第三步,点击左下角的+
xiangzhihong
2018/02/06
1.7K0
iOS开发技巧篇
iOS数据持久化
// // AppDelegate.m // // import "AppDelegate.h" import "Person.h" @interface AppDelegate () @end @implementation AppDelegate (void)dealloc { [_window release]; [super dealloc]; } (BOOL)application:(UIApplication )application didFinishLaunchingWith
大师级码师
2021/10/29
5230
xcode11新增SceneDelegate文件
好久之前跟新到Xcode11,跟新完成后打开以前老项目并未有什么太大变化,也就没有在意,今天新建一个项目,创建完成后,发现多了个SceneDelegate的.m和.h文件,这是什么鬼?它有什么用呢?
honey缘木鱼
2019/12/11
1.9K0
iOS开发系列——第一个iOS程序和运行过程
这里我想强调一下,前面的知识是你日后开发IOS的基础,没有那些知识你开发IOS会很痛苦,现在很多开发人员做开发都是一知半解,程序质量确实令人担忧,所以还是希望大家能够熟练掌握前面的内容,开发过程中多思考,彻底理解程序运行的原理、机制
Kris大鲨
2018/05/05
2K5
iOS开发系列——第一个iOS程序和运行过程
点击加载更多

相似问题

回到AppDelegate

14

如何将AppDelegate类添加到AppDelegate.cs中?

13

无法将BOOL设置为yes

21

NSUserDefaults registerDefaults to set initial BOOL - BOOL值的存在是否返回YES

21

设置BOOL类型的默认值为YES

50
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文