2013-06-27 7 views
5

कृपया इसे हल करने में मेरी सहायता करें ... मुझे त्रुटि मिल रही है क्योंकि "स्थिति 0 पर कोई पंक्ति नहीं है", "श्रेणी अपवाद से बाहर सूचकांक को अनचाहे किया गया था उपयोगकर्ता कोड "त्रुटि प्राप्त करना "स्थिति 0 पर कोई पंक्ति नहीं है"

नीचे मेरी कोड

protected void Page_Load(object sender, EventArgs e) 
{ 
    MTMSService obj = new MTMSService(); 
    DBAccess db = new DBAccess(); 
    { 
     MTMSDTO objc = new MTMSDTO(); 
     { 
      objc.TaskID = Convert.ToInt32(Session["TaskID"]); 
      DataSet rep = obj.GetReports(objc); 
      DataView Rprts = new DataView(); 
      Rprts.Table = rep.Tables[0]; 

      LblTaskID.Text = rep.Tables[0].Rows[0]["TaskID"].ToString(); 
      LblTaskName.Text = rep.Tables[1].Rows[0]["TaskName"].ToString(); 
      LblDueDate.Text = rep.Tables[2].Rows[0]["DueDate"].ToString(); 
      LblDescription.Text = rep.Tables[3].Rows[0]["Description"].ToString(); 
      LblAssignBy.Text = rep.Tables[4].Rows[0]["AssignBy"].ToString(); 
      LblStatus.Text = rep.Tables[5].Rows[0]["Status"].ToString(); 
      LblPercentageComplete.Text = 
        rep.Tables[6].Rows[0]["PercentageComplete"].ToString(); 

      LblTaskName.Visible = true; 
      LblAssignBy.Visible = true; 
      LblDescription.Visible = true; 
      LblDueDate.Visible = true; 
      LblStatus.Visible = true; 
      LblPercentageComplete.Visible = true; 
      LblAssignTo.Visible = false; 
     } 
    } 
} 
+0

अच्छा, संदेश बहुत स्पष्ट है, है ना? आप क्या समझ में नहीं आ रहे हैं? यदि 'rep.Tables [0]' में कोई पंक्ति नहीं है, तो 'पंक्तियों [0]' तक पहुंच अपवाद फेंकता है। –

+0

यह देखने के लिए जांचें कि क्या इसका उपयोग करने से पहले तालिका में कोई पंक्तियां हैं! –

+1

** डीबग ** और ** देखें ** –

उत्तर

9

आप की जाँच नहीं कर रहे हैं अपने टेबल किसी भी सामग्री को मिल गया है है। संदेश साफ है - स्थान 0. में कोई पंक्ति यह शायद इस लाइन पर फेंक दिया जा रहा है, या एक यह निम्नलिखित है:

LblTaskID.Text = rep.Tables[0].Rows[0]["TaskID"].ToString(); 

आप उन्हें वहां से डेटा प्राप्त करने प्रयास करने से पहले पंक्तियों हैं कि जांच होनी चाहिए। की तरह कुछ (इससे पहले कि आप इस का उपयोग वाक्य रचना की पुष्टि - इस सब पर परीक्षण नहीं किया है):

var table = rep.Tables[0]; 
if (table.Rows.Count > 0){ 
    // Fetch the data... 
} 
else 
{ 
    // Handle missing data in an appropriate way... 
} 
+1

कहने के लिए प्रयास करते हैं, यह ठीक काम करता है ... धन्यवाद ... लेकिन मेरा ग्रिड व्यू पंक्ति डेटा anoher पेज में प्रदर्शित नहीं हो रहा है .. हो रही है केवल खाली लेबल – Suraj

0

कुछ भी तक पहुँचने हमेशा पहले आइटम के लिए जाँच से पहले। ऐसा करने के बाद और यदि यह अभी भी होता है तो कॉलम नाम सही हैं? उदाहरण के लिए "TaskID" वास्तव में "TaskId" है और यह अनुक्रमण विफल हो रहा है? अंत में ये आइटम बेकार हैं? यदि ऐसा है तो एक नल फ़ील्ड पर ToString() को कॉल करना वह नहीं है जो आप चाहते हैं।

4

पहले की सलाह सभी अच्छी है और आपको इसका पालन करना चाहिए।

हालांकि यह मुझे स्पष्ट दिखता है कि स्थिति 0 पर कोई पंक्ति नहीं है क्योंकि आप गलत तालिका को देख रहे हैं। मुझे गंभीरता से संदेह है कि आपके पास एक टेबल में आईडी है, दूसरे नाम है, आदि, लेकिन आप डेटा के प्रत्येक टुकड़े के लिए एक अलग तालिका में अनुक्रमणित कर रहे हैं।

rep.Tables[1] 
rep.Tables[2] 
rep.Tables[3] 
rep.Tables[4] 
rep.Tables[5] 
rep.Tables[6] 

सब होना चाहिए

rep.Tables[0] 

आप निश्चित रूप से केवल एक मेज है, लेकिन तालिका 6 के माध्यम से तालिका 0 पर देख रहे हैं!

+0

thnks दोस्त ... पर स्पॉट – Suraj

संबंधित मुद्दे