ASP.NET C#网站制作中的异常索引超出范围...请帮助.. [英] Exception index out of range in ASP.NET C# website making...pls help..

查看:50
本文介绍了ASP.NET C#网站制作中的异常索引超出范围...请帮助..的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

代码:

public partial class Movie : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Admin\Documents\Visual Studio 2010\WebSites\WebSite1\App_Data\Database.mdf;Integrated Security=True;User Instance=True");
        con.Open();
        SqlCommand cmd1 = new SqlCommand();
        cmd1.CommandText = "select * from Movies where M_name='"+Session["M_name"]+"'";
        cmd1.Connection = con;
        SqlDataReader rd1 = cmd1.ExecuteReader();
        rd1.Read();
        lbl1.Text = rd1["M_name"].ToString();
        Image1.ImageUrl = rd1["M_image"].ToString();
        lbl2.Text = rd1["M_genre1"].ToString();
        lbl3.Text = rd1["M_genre2"].ToString();
        lbl4.Text = rd1["M_genre3"].ToString();
        lbl5.Text = rd1["M_genre4"].ToString();
        lbl6.Text = rd1["M_genre5"].ToString();
        lbl7.Text = rd1["M_genre6"].ToString();
        lbl8.Text = rd1["M_director"].ToString();
        lbl9.Text = rd1["M_cast1"].ToString();
        lbl10.Text = rd1["M_cast2"].ToString();
        lbl11.Text = rd1["M_cast3"].ToString();
        lbl12.Text = rd1["M_cast4"].ToString();
        lbl13.Text = rd1["M_plot"].ToString();
        rd1.Close();
        if (Session["C_name"] != null)
        {
            SqlCommand cmd2 = new SqlCommand();
            cmd2.CommandText = "select * from City where C_name='" + Session["C_name"] + "'";
            cmd2.Connection = con;
            SqlDataReader rd2 = cmd1.ExecuteReader();
            rd2.Read();
            lbl14.Text = rd2["T1_name"].ToString();//index out of range exception from this line...
            lbl15.Text = rd2["T1_address"].ToString();
            lbl16.Text = rd2["T2_name"].ToString();
            lbl17.Text = rd2["T2_address"].ToString();
            lbl18.Text = rd2["T1T1"].ToString();
            lbl19.Text = rd2["T1T2"].ToString();
            lbl20.Text = rd2["T1T3"].ToString();
            lbl21.Text = rd2["T2T1"].ToString();
            lbl22.Text = rd2["T2T2"].ToString();
            lbl23.Text = rd2["T2T3"].ToString();





我尝试了什么:



检查了拼写错误的数据库...



What I have tried:

checked the database for spelling mistakes...

推荐答案

您应该检查 rd2 是否包含某些内容。
You should check that rd2 contain something.


当您的列表中没有请求的成员时,会发生此异常,从您看到的代码片段中看起来是

- 您的'City'datable不包含,T1_name列

- 检查你是否在datareader中有记录,我的意思是如果你的记录没有从数据库中取出而读者是空的那么它也会抛出相同的异常



这里我想澄清一下,当datareader为NULL并且你试图从中获取记录然后它抛出对象引用...错误并且如果datareader不为null但是datareader没有值并且你正试图从中获取记录然后它抛出IndexOutOf ..异常
This exception occurred when you don't have requested member in your list, from your code snippet it looks
- your 'City' datable does not contains, "T1_name" column
- Check if you got record in datareader, I mean if your record is not fetched from database and reader is empty then also it will throw same exception

(Here I want to clarify something, When datareader is NULL and you are trying to fetch record from it then it throws "Object reference..." error and if datareader is not null but datareader has not value and you are trying to fetch record from it then it throws "IndexOutOf.." exception)


这篇关于ASP.NET C#网站制作中的异常索引超出范围...请帮助..的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆