我只是調用一個存儲過程,它是用SQL Server 2005開發的。 這裏是我存儲過程的簽名。問題與SqlParameter和數據類型
CREATE PROCEDURE [dbo].[GenericSearch]
(
@ModuleName VARCHAR(100),
@ViewName VARCHAR(100),
@WhereClause_XML XML,
@LogicalOperator VARCHAR(3)
)
AS
BEGIN
END
我只是從我的前端調用這個存儲過程並傳遞價值像
string[] Tables = new string[] { "TPMaster" };
SqlParameter[] cparams = new SqlParameter[4];
SqlParameter param;
param = new SqlParameter("@ModuleName", ModuleName);
param.DbType = DbType.String;
cparams[0] = param;
param = new SqlParameter("@ViewName", DataSource);
param.DbType = DbType.String;
cparams[1] = param;
param = new SqlParameter("@WhereClause_XML", strXml);
param.DbType = DbType.Xml;
cparams[2] = param;
param = new SqlParameter("@LogicalOperator", (rbAnd.Checked ? "AND" : "OR"));
param.DbType = DbType.String;
cparams[3] = param;
ds = Business.Common.GetDataSet("GenericSearch", cparams, Tables);
在這裏,我指定param.DbType
字符串爲我所有varchar
數據類型存儲過程和一個XML數據類型。
我得到一個錯誤
過程需要 類型的參數「@statement 'NTEXT/NCHAR/nvarchar的'
我只是不明白是什麼原因造成的錯誤。請告訴我如何解決它。
嗯看起來很奇怪,我會仔細檢查你的應用程序肯定是指向正確的過程,甚至是正確的數據庫。嘗試刪除proc,你的應用程序會不會在那裏呻吟? – 2012-01-06 13:14:06
'@ statement'從哪裏來? – 2012-01-06 13:15:29
它在錯誤信息中。 – Thomas 2012-01-06 13:18:04