1
6
存储过程
C码
|
2
5
存储过程
代码
为什么我用的是检查这个 link |
3
2
只需将存储过程名称指定为 SQL命令 并设置 命令类型 到 命令类型.storedprocedure . 此外,将一次性物品包装在 使用 阻止。sqlconnection、sqlcommand和sqladapter是可释放的对象。这是一个修改过的代码。
|
4
2
我不明白为什么人们在数据访问代码方面忘记了他们使用的是面向对象的语言。您不应该一遍又一遍地编写相同的代码。首先,您应该有一个在所有项目中使用的基类。这个基类应该处理连接字符串、日志异常等。我在一年前写的,从那以后就没有太大的改变。 请查看以下示例以了解将在此基类中的示例:
我们有gettable()、getdataset()、executescalarint()、executescalarguid()等,每个都有一系列重载。 所以这些都在我的基类中,我从这个类继承来完成我的特定于项目的工作。但现在,这一点被大大简化,就像下面的例子:
作为附带的好处,我可以基于存储过程编写此代码的脚本。 Here is the code to do that. 所以它节省了我大量的输入,特别是当有很多参数的时候。 最后,使用其他面向对象技术,我将代码分为以下几部分:
(大多数情况下,中间都有一个业务对象,但您会得到这个想法。) 所有连接字符串、异常日志记录等都封装在这一行中。 另一个好处是,如果您每次都在复制代码,那么您的基类就可以比以前更多地参与其中。例如,我们将异常记录到数据库表中。只有当失败时,才会将其记录到文本文件中。如果它位于基类中的一个位置,那么这个广泛的逻辑是可以的,但是它不是您想要在整个项目中复制和粘贴的东西。 这也使得合并一些最佳实践变得容易,例如尽可能晚地打开连接并尽快关闭连接。 |
5
1
这将无法正常工作,因为您没有使用存储过程,所以应该这样调用上面的命令
如果要调用存储过程,请按如下方式调用它:
见 here 在msdn中,有关详细信息,它还将使用参数 |
6
1
与使用查询只有几个不同之处:
当然,您必须在数据库中创建SPPMInfoList。 |
7
1
存储过程示例:
C代码:
有关更多说明,请参阅本教程 Using Stored Procedure with C# for beginners |
8
0
这不完全是您问题的答案,但在您的情况下,我不会费心将您的查询转换为存储过程,因为这可能是许多额外的工作,没有真正的好处。在过去的几天里,SQL Server中的存储过程比所谓的即席SQL查询更快,因为SQL Server可以计算和缓存查询的执行计划。但是,在现代版本的SQL Server中,数据库在运行一次之后,会缓存每个查询的执行计划,因此,在执行临时查询之后,它的执行速度将与存储过程一样快。 此外,将查询保存在应用程序代码中的一个真正的和主要的优势是,查询将受源代码管理和可版本控制(当然,假设您使用的是源代码管理)。可以在SQL Server中对存储过程进行版本转换,但这是一项更多的工作,很少有人这样做。 最后,将查询移动到存储过程意味着重写应用程序代码的大部分,因为存储过程的访问方式与临时SQL查询不同。在开始时使用存储过程编写应用程序可能是有意义的,但是在编写应用程序以使用特殊的SQL查询之后,将其转换为使用存储过程的意义就小得多。 |
9
0
对于它的价值而言,您将希望在代码隐藏中简单地包装存储过程,这是远远不够的。要深入了解这一点,请阅读本文: Code on the Road: ExampleCode != ProductionCode 即席SQL是最简单的修复方法之一,也是我们作为开发人员遇到的最普遍的代码复制形式之一。即使只是思考如何组织数据库交互的几分钟,也会以可维护性和开发速度的形式得到回报。 |
10
-1
公共类客户数据访问 { 静态字符串connectionString=configurationmanager.connectionStrings[“testdb”].toString(); 公共列表getCustomerListByName(字符串customerName) { list customerList=new list(); |
kaiselwyvrn · 我无法打开Visual Studio项目 1 年前 |
4SadMemeXD · 无法在Django中选择相关类别 2 年前 |
Agrim Singh · 用户数据。名称未显示用户名 2 年前 |
Peloucvo · 用数据库中的数据填充JTable 2 年前 |
Montaser Majid · 用于从多行中提取单行的SQL查询 2 年前 |
Max J. · 用整数作为键将dict写入csv 2 年前 |