2010-04-05 81 views
0

從c#執行.dtsx包,它執行得很好,如果我從c#代碼傳遞一個變量值,那麼如何才能在.dtsx包中爲我的ole db源查詢。這是我的C#代碼。如何在dtsx包中獲取外部變量值

  string file = @"D:\CYNCZFuzzy\CYNCZFuzzy\Contact.dtsx"; 
      package = app.LoadPackage(file, null); 
      Variables vars = package.Variables; 
      vars["User::parentContactID"].Value = 1028203; 
      pkgResults = package.Execute(); 
      string result = pkgResults.ToString(); 

我需要這個1028203值在我的ole db源查詢,在這裏我的查詢。

select cr.MasterContactID as ParentContactID, 
     c.ID,C.FirstName, 
     C.MiddleName, 
     c.LastName, 
     c.ID as FieldID 
from Contact c inner join 
     ContactRelation cr on cr.SlaveContactID = c.ID 
where RelationshipID = 1 
AND  cr.MasterContactID = ? 

我應該寫什麼?用於從C#頁面獲取1028203值。

在此先感謝...

回答

0

編輯您的OLE DB源組件。
在您看到的第一個對話框中,連接管理器應該突出顯示在左側。
在右邊將在第一箱的連接管理器名稱(OLE DB的ConnectionManager:),SQL命令在第二個框(數據訪問模式:),第三個框將有你的SQL文本爲你在上面的問題中提供(SQL命令文本:)。
在SQL命令文本框的右側,將會有四個按鈕。
該組中的頂部按鈕被命名爲參數...。點擊這個按鈕將彈出一個子對話框。此對話框中只有一個框標記爲映射:
在此框的參數標題下,應該有一個名爲Parameter0的參數(根據查詢中問號的數量和位置進行預填充,即第一個參數在你的查詢中創建一個parameter0,第二個問號創建一個parameter1,查詢中的第n個問號創建一個參數(n-1),這個盒子中的另一列標記爲Variables
如果你點擊文本框下面的變量,你可以看到它變成了一個下拉式文本框,你可以放下它,選擇與你的變量「User :: parentContactID」相匹配的條目,然後點擊OK關閉子對話框並且OK再次到c丟失OLE DB源編輯對話框。這將以您在原始問題中要求的方式添加參數。