主页 > 知识库 > sqlserver 存储过程动态参数调用实现代码

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

热门标签:成都电话外呼系统一般多少钱 银川高频外呼回拨系统多少钱 陕西电销外呼系统好用吗 如何做地图标注图铺 数字匠心电销机器人 没听见电话机器人帮你接 最新人工智能电销机器人 兰州语音外呼系统运营商 al智能电话机器人
只是做笔记,没什么!!
复制代码 代码如下:

--创建测试表
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 Dictionarystring, string> _args;
public string Args
{
get
{
if (!_isCreate)
{
_strArgs = _CreateArgs();
_isCreate = true;
}
return _strArgs;
}
}
public XmlArgs()
{
_args = new Dictionarystring, 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;
}
您可能感兴趣的文章:
  • C# Ado.net实现读取SQLServer数据库存储过程列表及参数信息示例
  • SQL SERVER调用存储过程小结
  • Java中调用SQL Server存储过程详解
  • PHP调用MsSQL Server 2012存储过程获取多结果集(包含output参数)的详解
  • Sql Server 存储过程调用存储过程接收输出参数返回值
  • sqlserver中存储过程的递归调用示例
  • .net下调用sqlserver存储过程的小例子
  • SQL SERVER使用ODBC 驱动建立的链接服务器调用存储过程时参数不能为NULL值
  • PHP基于PDO调用sqlserver存储过程通用方法【基于Yii框架】
  • SQL Server存储过程在C#中调用的简单实现方法

标签:辽源 巴彦淖尔 宜春 邢台 朔州 本溪 盐城 通化

巨人网络通讯声明:本文标题《sqlserver 存储过程动态参数调用实现代码》,本文关键词  sqlserver,存储,过程,动态,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《sqlserver 存储过程动态参数调用实现代码》相关的同类信息!
  • 本页收集关于sqlserver 存储过程动态参数调用实现代码的相关信息资讯供网民参考!
  • 推荐文章