2014-05-23 53 views
0

下面是我的C#代碼來從列表框中從列表框傳遞多個選定的值到一個Array如C#參數

List<string> listCountry = new List<string>(); 
for (int i = 0; i < lstCountry.Items.Count; i++) 
{ 
    if (lstCountry.Items[i]Selected) 
    { 
     countries = listCountry.Add(lstCountry.Items[i].ToString()); 
    } 
}  

填充多所選項目和我有一個線調用方法來運行上述參數的報告:

retVal = CR.GetReport(Company, countries); 

我的問題是:我應該定義哪些數據類型國家,因爲它不斷給我的錯誤,如「不能隱式轉換類型‘無效’到‘線’」當我將國家定義爲時string countries = null; 我在這裏做錯了什麼?請幫幫忙,非常感謝你

對不起,我沒有做得很清楚,我有另外一個功能GetReport(),它被定義爲

public CrystalDecisions.CrystalReports.Engine.ReportDocument GetReport(string  Company, string countries) 
{ 
    CrystalDecisions.CrystalReports.Engine.ReportDocument retVal = new rptReortData(); 
    ReportLogon rptLog = new ReportLogon(); 
    rptLog.logon(retVal, "Report"); 
    retVal.SetParameterValue("P_Country", new string[] { country}); 
} 

如何從列表框中分配中獲得的價值到國家

回答

2

你沒有提供你的函數的名字,但我想它是GetReport。它不會返回任何值,因此您無法分配retVal。試試下面的:

CR.GetReport(Company, countries); 
+0

我添加了功能GetReport()。我在那裏做錯了什麼? – Jenny

0

我對你的問題有點疑惑,但我猜的CR.GetReport函數拋出一個異常?所以你的數據類型國家取決於該功能。

我可能做如下改變:

listCountry.Add((lstCountry.Items[i] == null ? string.Empty : lstCountry.Items[i].ToString())); 
0

你需要從你的函數

public CrystalDecisions.CrystalReports.Engine.ReportDocument GetReport(string  Company, string countries) 
{ 
    CrystalDecisions.CrystalReports.Engine.ReportDocument retVal = new rptResearchDataDownload(); 
    ReportLogon rptLog = new ReportLogon(); 
    rptLog.logon(retVal, "Report"); 
    retVal.SetParameterValue("P_Country", new string[] { country}); 

    // ADD THIS LINE 
    return retVal; 

} 

而且你需要在列表轉換爲字符串返回retVal的。你可以這樣做是這樣的:

countries = listCountry.Aggregate((list, c) => list + c + ","); 
+0

是的,我補充說,它在這方面效果很好,非常感謝。但是,列表的數據類型與國家衝突。 – Jenny

+0

我編輯了我的答案 –

+0

嗨Bartosz,什麼是列表,它沒有顯示在我的VS2010智能後我輸入Aggregate – Jenny

0
List<string> listText = new List<string>(); 
List<string> listValue = new List<string>(); 
foreach (int index in ListBox1.GetSelectedIndices()) { 
    listText.Add(ListBox1.Items[index].Text); 
    listValue.Add(ListBox1.Items[index].Value); 
} 
相關問題