我有一個字符串列表,我需要檢查列表中的任何值是否包含在數據庫表中。如果存在返回現有值的數據集。將列表<string>傳遞給存儲過程
public DataSet CheckDocumentNumber(List<string> DocNumber)
{
DataSet DocNum = new DataSet();
SqlTransaction transaction = DALDBConnection.SqlConnection.BeginTransaction();
try
{
string[] taleNames = new string[1];
taleNames[0] = "DocNum";
SqlParameter[] param = new SqlParameter[1];
param[0] = new SqlParameter("@DocNumber", DocNumber);
SqlHelper.FillDataset(transaction, CommandType.StoredProcedure, "spCheckDocNumber", DocNum, taleNames, param);
transaction.Commit();
}
catch (Exception e)
{
transaction.Rollback();
}
return DocNum;
}
我的存儲過程是
CREATE PROCEDURE spCheckDocNumber
@DocNumber VARCHAR(MAX)
AS
BEGIN
SELECT * FROM tblDocumentHeader WHERE DocumentNumber = @DocNumber
END
我需要知道我怎麼有列表傳遞到存儲過程和如何與步驟檢查清單。 PLZ幫助
多少記錄你期望的字符串變量可以有? – Pankaj 2012-04-09 14:41:50
您是否可以控制存儲過程,即是否允許更改它?您需要修改存儲過程以使用表值參數(http://mindlesspassenger.wordpress.com/2011/05/09/table-valued-parameters-codefirst-and-stored-procedures-3/), xml,或者使用動態sql將列表包含到查詢中。或者您將不得不爲列表中的每個元素調用一次存儲過程,這對於大型列表來說效率不高。 – mellamokb 2012-04-09 14:42:37