≡
  • 网络编程
  • 数据库
  • CMS技巧
  • 软件编程
  • PHP笔记
  • JavaScript
  • MySQL
位置:首页 > 数据库 > SQL Server

SQL Server存储过程动态参数调用实现代码

人气:616 时间:2019-11-25

这篇文章主要为大家详细介绍了SQL Server存储过程动态参数调用实现代码,具有一定的参考价值,可以用来参考一下。

感兴趣的小伙伴,下面一起跟随四海网的小编两巴掌来看看吧!

只是做笔记,没什么!!

代码如下:

 
--创建测试表 
CREATE TABLE [dbo].[Student]( 
[ID] [int] IDENTITY(1,1) NOT NULL PRIMARY KEY, 
[Name] [nvarchar](20) NOT NULL DEFAULT (''), 
[Age] [int] NOT NULL DEFAULT (0), 
[Sex] [bit] NOT NULL DEFAULT (0), 
[Address] [nvarchar](200) NOT NULL DEFAULT ('') 
) 
--比如是一个查询存储过程 
Create PROC GetStudentByType 
@type int =0, -- 1根据id查询, 2根据性别查询 
@args XML -- 参数都写到这里吧 
AS 
BEGIN 
DECLARE @id INT,@sex BIT 
SET @id=@args.value('(args/id)[1]','int') --参数都可以写在这里,如果没有传过来,大不了是null值了,反正也用不到,没关系的 
SET @sex =@args.value('(args/sex)[1]','bit') 
IF(@type=1) 
BEGIN 
SELECT * FROM dbo.Student WHERE ID=@id 
END 
IF(@type=2) 
BEGIN 
SELECT * FROM dbo.Student WHERE Sex=@sex 
END 
END 

参数写xml里感觉比用字符串要好很多,这样调用时参数就不好组织了,所以这里要有个帮助类XmlArgs

代码如下:

 
public class XmlArgs 
{ 
private string _strArgs = string.Empty; 
private bool _isCreate = false; 
private Dictionary<string, string> _args; 
public string Args 
{ 
get 
{ 
if (!_isCreate) 
{ 
_strArgs = _CreateArgs(); 
_isCreate = true; 
} 
return _strArgs; 
} 
} 
public XmlArgs() 
{ 
_args = new Dictionary<string, string>(); 
} 
public void Add(string key, object value) 
{ 
_args.Add(key, value.ToString()); 
_isCreate = false; 
} 
public void Remove(string key) 
{ 
_args.Remove(key); 
_isCreate = false; 
} 
public void Clear() 
{ 
_args.Clear(); 
_isCreate = false; 
} 
private string _CreateArgs() 
{ 
if (_args.Count == 0) 
{ 
return string.Empty; 
} 
StringBuilder sb = new StringBuilder(); 
foreach (string key in _args.Keys) 
{ 
sb.AppendFormat("<{0}>{1}</{0}>", key, _args[key]); 
} 
return sb.ToString(); 
} 
} 

调用:

代码如下:

 
private void BindData() 
{ 
XmlArgs args = new XmlArgs(); 
args.Add("id", 1); 
System.Data.DataTable dt = GetStudentByType(1, args); 
GridView1.DataShow(dt); 
} 
private System.Data.DataTable GetStudentByType(int type, XmlArgs args) 
{ 
SqlHelper helper = new SqlHelper(); 
helper.Params.Add("type", type); 
helper.Params.Add("args", args.Args); 
System.Data.DataTable dt = helper.RunDataTable("GetStudentByType"); 
return dt; 
} 

本文来自:http://www.q1010.com/179/7996-0.html

注:关于SQL Server存储过程动态参数调用实现代码的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。

关键词:SQL SERVER

您可能感兴趣的文章

  • SQLServer 全文检索(full-text)语法
  • SQL Server 2000 升级到 SQLServer 2008 性能之需要注意的地方之一
  • SQL Server 一次性压缩Sqlserver2005中所有库日志的存储过程
  • SQLServer 跨库查询实现方法
  • SQL Server 数据库主键的生成方式小结(sqlserver,mysql)
  • SQL Server使用cmd命令行窗口操作SqlServer的方法
  • SQLServer 2005 实现数据库同步备份 过程-结果-分析
  • SQL Server CREATE FUNCTION sqlserver用户定义函数
  • sqlserver 查询数据库大小的方法
  • SQL Server 存储过程解密(破解函数,过程,触发器,视图.仅限于SQLSERVER2000)
上一篇:SQL Server存储过程表名和字段名为变量的实现方法
下一篇:SQL Server 多表关联同时更新多条不同的记录方法
热门文章
  • SQL Server SQL获取第一条记录的方法
  • SQL Server出现System.OutOfMemoryException异常的解决方法
  • SQL Server的 update from 语句的简单示例
  • SQL Server 数据库备份方法菜鸟教程
  • SQL Server 多表关联时在where语句中慎用trim()方法
  • SQL Server数据类型及长度限制详细说明
  • mybaits非配置原因,导致SqlSession was not registered for synchronization异常解析
  • SQL Server 收缩后对数据库的使用有影响吗?
  • SQL Server 格式导致的Excel导入sql出现异常的解决方法
  • SQL Server 连接服务器出现错误 7391的解决方法
  • 最新文章
    • SQL Server存储过程基本语法的简单示例
    • sql查询时增加自动编号和分页的简单示例
    • sql轻松应付百万数据的高效数据分页存储过程的简单示例
    • sql获取一条数据中所有字段的名称和值的实现方法
    • sql分割函数的简单示例
    • SQL Server异常捕获的简单示例
    • SQL SERVER回滚恢复误操作数据的实现方法
    • SQL Server函数或存储过程中抛出异常的实现方法
    • SQL Server创建数据库的完整代码
    • SQL Server创建数据库的命令用法示例

四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。