最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

sqlserver 存儲(chǔ)過(guò)程動(dòng)態(tài)參數(shù)調(diào)用實(shí)現(xiàn)代碼

 更新時(shí)間:2011年10月17日 19:00:57   作者:  
sqlserver 存儲(chǔ)過(guò)程動(dòng)態(tài)參數(shù)調(diào)用實(shí)現(xiàn)代碼,需要的朋友可以參考下。
只是做筆記,沒(méi)什么?。?
復(fù)制代碼 代碼如下:

--創(chuàng)建測(cè)試表
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 ('')
)
--比如是一個(gè)查詢存儲(chǔ)過(guò)程
Create PROC GetStudentByType
@type int =0, -- 1根據(jù)id查詢, 2根據(jù)性別查詢
@args XML -- 參數(shù)都寫(xiě)到這里吧
AS
BEGIN
DECLARE @id INT,@sex BIT
SET @id=@args.value('(args/id)[1]','int') --參數(shù)都可以寫(xiě)在這里,如果沒(méi)有傳過(guò)來(lái),大不了是null值了,反正也用不到,沒(méi)關(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ù)寫(xiě)xml里感覺(jué)比用字符串要好很多,這樣調(diào)用時(shí)參數(shù)就不好組織了,所以這里要有個(gè)幫助類(lèi)XmlArgs
復(fù)制代碼 代碼如下:

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)用:
復(fù)制代碼 代碼如下:

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

相關(guān)文章

最新評(píng)論

仪陇县| 太白县| 大理市| 沙洋县| 西昌市| 民勤县| 葵青区| 商南县| 神农架林区| 类乌齐县| 湖口县| 沛县| 正定县| 开平市| 宝坻区| 华容县| 鄂托克前旗| 定远县| 拉萨市| 大兴区| 苏尼特右旗| 太仓市| 徐州市| 漳州市| 寿宁县| 周口市| 昂仁县| 达拉特旗| 遂昌县| 兴山县| 商河县| 灵武市| 泗水县| 新竹县| 海门市| 九江市| 龙门县| 沁阳市| 白河县| 富裕县| 商水县|