佳木斯湛栽影视文化发展公司

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

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

熱門標簽:服務(wù)外包 AI電銷 百度競價排名 呼叫中心市場需求 地方門戶網(wǎng)站 鐵路電話系統(tǒng) Linux服務(wù)器 網(wǎng)站排名優(yōu)化
只是做筆記,沒什么!!
復(fù)制代碼 代碼如下:

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

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

調(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;
}
您可能感興趣的文章:
  • C# Ado.net實現(xiàn)讀取SQLServer數(shù)據(jù)庫存儲過程列表及參數(shù)信息示例
  • SQL SERVER調(diào)用存儲過程小結(jié)
  • Java中調(diào)用SQL Server存儲過程詳解
  • PHP調(diào)用MsSQL Server 2012存儲過程獲取多結(jié)果集(包含output參數(shù))的詳解
  • Sql Server 存儲過程調(diào)用存儲過程接收輸出參數(shù)返回值
  • sqlserver中存儲過程的遞歸調(diào)用示例
  • .net下調(diào)用sqlserver存儲過程的小例子
  • SQL SERVER使用ODBC 驅(qū)動建立的鏈接服務(wù)器調(diào)用存儲過程時參數(shù)不能為NULL值
  • PHP基于PDO調(diào)用sqlserver存儲過程通用方法【基于Yii框架】
  • SQL Server存儲過程在C#中調(diào)用的簡單實現(xiàn)方法

標簽:黃山 崇左 衡水 湘潭 銅川 湖南 仙桃 蘭州

巨人網(wǎng)絡(luò)通訊聲明:本文標題《sqlserver 存儲過程動態(tài)參數(shù)調(diào)用實現(xiàn)代碼》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    毕节市| 会东县| 淳安县| 栖霞市| 封丘县| 乐昌市| 玉龙| 六盘水市| 增城市| 阳谷县| 昌宁县| 滦平县| 金乡县| 广河县| 鹤壁市| 华亭县| 门源| 涞源县| 淅川县| 卫辉市| 赣州市| 苍溪县| 剑河县| 灵山县| 砀山县| 苏尼特右旗| 惠安县| 怀化市| 松原市| 横山县| 安陆市| 定兴县| 大渡口区| 长沙市| 侯马市| 榕江县| 响水县| 怀远县| 滁州市| 明溪县| 广州市|