2015-06-09 13 views
-5
protected void asd_Click(object sender, EventArgs e) 
    { 
     if (Common.Common.ApplicationInformation.LoggedInUser.RGroupIds != null) 
     { 
      string Documentid = string.Empty; 
      string GroupIds = string.Empty; 
      string DocumentIds = string.Empty; 
      string ContactIds = string.Empty; 
      //---------------- 
      if (Session["ReportDocumentIDs"].ToString() != null) 
      { 
       DocumentIds = Session["ReportDocumentIDs"].ToString(); 
       **Documentid = DocumentIds.Substring(0, DocumentIds.LastIndexOf(','));** 
      } 
      else 
      { 
       Documentid = null; 
      } 
+1

DocumentIds пусто, и вы используете его длина в операции подстроки –

+3

Я считаю, что 'DocumentsIds' не содержит запятую. Поэтому 'DocumentIds.LastIndexOf (',')' возвращает просто '-1' - вот в чем проблема. –

+0

Если вы копируете заголовок вопроса в Google, вы получаете * сотни * дубликатов. Пожалуйста, прочитайте [ask] – Sayse

ответ

-2

Попробуйте (Проверьте с синтаксисом, я п телефон)

Documentid = DocumentIds.Substring(0, DocumentIds.LastIndexOf(',')==-1?0:DocumentIds.LastIndexOf(',')); 
+0

«Попробуйте это» ничего не объясняет. – Sayse

+0

Ответы с помощью только строки кода ничего не дают, чтобы объяснить OP *, как это реально решает их проблему, что означает, что они, вероятно, уйдут, не зная, что на самом деле проблема, или как она исправлена, что приводит к другому плохому качеству вопрос появляется. Поэтому я согласен, да, оператору требуется решение, но я бы не назвал это полным решением. Его не слишком далеко, чтобы думать, что pwas удалит его комментарий. – Sayse

+0

Я говорю о своем комментарии к вопросу. Я объяснил причину и дал решение, что вы ожидаете, это тысячи строк для кода для этого? –

1

кажется, что вы хотите взять все строки, кроме последней разделенной запятой пункта:

"1,2,abc,xyz" -> "1,2,abc" 

Вы должны решить, что делать, если есть только один пункт в строке, т.е.

"xyz" -> take it or leave it? 

в обеих случаях реализация может быть

String text = Session["ReportDocumentIDs"].ToString(); 

    int index = text.LastIndexOf(','); 

    // If you want to take the item 
    Documentid = text.SubString(0, index < 0 ? text.Length : index); 
    // If you want to leave the item 
    //Documentid = text.SubString(0, index < 0 ? 0 : index); 

    if (Documentid.Equals("")) 
    Documentid = null; // since, you treat empty string as null 
Смежные вопросы