[英]SqlDataAdapter - combine stored procedure and Select statement with parameters
使用SqlDataAdapter
(或其他 ASP.NET 技術),是否可以對存儲過程進行單個 SQL 調用並運行選擇語句? 兩者都有參數。
我知道你可以組合多個選擇語句......
DataSet ds = new DataSet();
using (SqlConnection connection = new SqlConnection(myConnectionString))
{
connection.Open();
SqlDataAdapter cmd = new SqlDataAdapter("SELECT id FROM Table1 WHERE id=@myid; SELECT id FROM Table2", connection);
cmd.SelectCommand.Parameters.AddWithValue("@id",myid);
cmd.Fill(ds);
}
您可以以類似的方式調用存儲過程...
DataSet ds = new DataSet();
using (SqlConnection connection = new SqlConnection(myConnectionString))
{
connection.Open();
SqlDataAdapter cmd = new SqlDataAdapter("myStoredProcedure", connection);
cmd.CommandType = CommandType.StoredProcedure;
cmd.SelectCommand.Parameters.AddWithValue("@id",myid);
cmd.Fill(ds);
}
但我想將兩者合並為一個電話。
我需要將存儲過程和選擇語句分開。 我不想將它們組合成一個存儲過程。
謝謝你的幫助!
訣竅是exec函數。
從文檔
它在 Transact-SQL 批處理或以下模塊之一中執行命令字符串或字符串:系統存儲過程、用戶定義存儲過程、CLR 存儲過程、標量值用戶定義函數或擴展存儲過程。
所以你可以這樣做:
DataSet ds = new DataSet();
using (SqlConnection connection = new SqlConnection(myConnectionString))
{
connection.Open();
SqlDataAdapter cmd = new SqlDataAdapter("SELECT id FROM Table1 WHERE id=@myid; Exec myStoredProcedure @myid", connection);
cmd.SelectCommand.Parameters.AddWithValue("@myid",myid);
cmd.Fill(ds);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.