国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > SQL Server > 正文

sqlserver 存儲過程動態(tài)參數(shù)調(diào)用實現(xiàn)代碼

2024-08-31 00:58:08
字體:
供稿:網(wǎng)友
只是做筆記,沒什么!!

復制代碼 代碼如下:


--創(chuàng)建測試表
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根據(jù)id查詢, 2根據(jù)性別查詢
@args XML -- 參數(shù)都寫到這里吧
AS
BEGIN
DECLARE @id INT,@sex BIT
SET @id=@args.value('(args/id)[1]','int') --參數(shù)都可以寫在這里,如果沒有傳過來,大不了是null值了,反正也用不到,沒關(guān)系的
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


參數(shù)寫xml里感覺比用字符串要好很多,這樣調(diào)用時參數(shù)就不好組織了,所以這里要有個幫助類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();
}
}


調(diào)用:

復制代碼 代碼如下:


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;
}

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 独山县| 颍上县| 九寨沟县| 三都| 灵丘县| 蒙阴县| 晋中市| 鄢陵县| 汽车| 高邑县| 桑植县| 体育| 通许县| 雅江县| 揭西县| 海伦市| 合山市| 嘉兴市| 沁源县| 渝北区| 凌海市| 黑山县| 师宗县| 瑞金市| 阿拉尔市| 诸城市| 郁南县| 左贡县| 离岛区| 阜阳市| 华安县| 湟源县| 雷州市| 巴中市| 小金县| 临汾市| 益阳市| 临洮县| 磐安县| 桂东县| 衡东县|