C# Can';我找不到我的“错误”;“提交时不存在数据时读取的尝试无效”;

C# Can';我找不到我的“错误”;“提交时不存在数据时读取的尝试无效”;,c#,asp.net,visual-studio,C#,Asp.net,Visual Studio,我需要帮助,因为我已经为用户创建了注册页面,一切都很顺利,直到他们遇到错误 “在不显示数据时读取的尝试无效” 无论何时提交 我一直跟踪bug并进行修复,但仍然无法修复,因为遇到了另一个错误,如“需要关闭连接”等。以下是我的原始代码,需要帮助: 出现错误: “/”应用程序中出现服务器错误 堆栈跟踪:[InvalidOperationException:读取时的尝试无效 没有数据。] System.Data.SqlClient.SqlDataReader.CheckDataisReady(Int

我需要帮助,因为我已经为用户创建了注册页面,一切都很顺利,直到他们遇到错误

“在不显示数据时读取的尝试无效”

无论何时提交

我一直跟踪bug并进行修复,但仍然无法修复,因为遇到了另一个错误,如“需要关闭连接”等。以下是我的原始代码,需要帮助:



出现错误:

“/”应用程序中出现服务器错误

堆栈跟踪:[InvalidOperationException:读取时的尝试无效 没有数据。] System.Data.SqlClient.SqlDataReader.CheckDataisReady(Int32 columnIndex、布尔allowPartiallyReadColum、布尔PermitAsync、, 字符串methodName)+6531242

System.Data.SqlClient.SqlDataReader.TryReadColumn(int32i,布尔值 setTimeout,布尔allowPartiallyReadColumn)+81

System.Data.SqlClient.SqlDataReader.GetValueInternal(int32i)+43

System.Data.SqlClient.SqlDataReader.GetValue(int32i)+151

vnetwork.Account.DatabaseEntry.Page_加载(对象发送方,事件参数e) +432

System.Web.UI.Control.LoadRecursive()+71

System.Web.UI.Page.ProcessRequestmain(布尔值 IncludeStages前同步点,布尔值IncludeStages后同步点) +3178

备注:用户告诉我有些时候是让它打开页面一段时间然后 无论何时尝试输入并提交,上面显示的错误以及 有时尝试输入第二次数据


错误发生在哪里?发布包括调用堆栈在内的完整异常。通过调用
ex.ToString()
,这很容易做到。此错误通常与DataReaders相关,并且您的代码似乎没有使用anyHi,错误显示为“在没有数据时尝试读取无效”“无论何时提交第二个数据。第一个条目没有问题,但提交第二个条目时出现错误。哪一行?异常消息已经包含了这一点。同时发布完整消息,包括调用堆栈。在一个50多行的片段中谈论第一篇和第二篇文章毫无帮助。我刚刚编辑了上面的问题,用户仍然有错误。你注意到错误发生在不同的方法中了吗?该错误发生在DatabaseEntry类的
Page\u Load
方法中。您是否尝试调试代码,或者只是假设它是按钮的事件处理程序?如果您尝试过调试,调试器将在异常发生时停止。请用相关代码替换您在此处发布的内容
  protected void Button9_Click(object sender, EventArgs e)
  {



        string connStr = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
        SqlConnection conn = new SqlConnection(connStr);


        System.Data.SqlClient.SqlCommand cmd = conn.CreateCommand();

        String email = TextBox3.Text.Trim();
        String select = ("select Email from Customer where email=@Email");
        cmd.Parameters.AddWithValue("@Email", email);


        DataTable dt = new DataTable();
        SqlDataAdapter da = new SqlDataAdapter();
        cmd.CommandText = select;
        da.SelectCommand = cmd;
        da.Fill(dt);


        if (dt.Rows.Count > 0)
        {

            ScriptManager.RegisterStartupScript(this, this.GetType(), "popup", "alert('ERROR!!! Email Exists')", true);
            return;
        }


        else
        {

            String FullName;
            String FirstName;
            String LastName;

            cmd.Parameters.Add("Type", SqlDbType.NVarChar);
            cmd.Parameters["Type"].Value = this.DropDownList2.Text;

            cmd.Parameters.Add("NatureBusiness", SqlDbType.NVarChar);
            cmd.Parameters["NatureBusiness"].Value = this.DropDownList5.Text;

            cmd.Parameters.Add("Title", SqlDbType.NVarChar);
            cmd.Parameters["Title"].Value = this.DropDownList1.Text;

            cmd.Parameters.Add("FirstName", SqlDbType.NVarChar);
            cmd.Parameters["FirstName"].Value = this.TextBox1.Text;

            cmd.Parameters.Add("LastName", SqlDbType.NVarChar);
            cmd.Parameters["LastName"].Value = this.TextBox2.Text;

            cmd.Parameters.Add("Fullname", SqlDbType.NVarChar);
            cmd.Parameters["Fullname"].Value = this.TextBox1.Text + " " + this.TextBox2.Text;

            cmd.Parameters.Add("Ac_Manager", SqlDbType.NVarChar);
            cmd.Parameters["Ac_Manager"].Value = this.DropDownList3.Text;

            cmd.Parameters.Add("Remarks", SqlDbType.NVarChar);
            cmd.Parameters["Remarks"].Value = this.TextBox13.Text;

            cmd.Parameters.Add("City", SqlDbType.NVarChar);
            cmd.Parameters["City"].Value = this.TextBox12.Text;

            cmd.Parameters.Add("Country", SqlDbType.NVarChar);
            cmd.Parameters["Country"].Value = this.DropDownList4.Text;



            cmd.Parameters.Add("Job_Title", SqlDbType.NVarChar);
            cmd.Parameters["Job_Title"].Value = this.TextBox4.Text;

            cmd.Parameters.Add("Company", SqlDbType.NVarChar);
            cmd.Parameters["Company"].Value = this.TextBox5.Text;

            cmd.Parameters.Add("Mobile_Phone", SqlDbType.NVarChar);
            cmd.Parameters["Mobile_Phone"].Value = this.TextBox8.Text + this.TextBox6.Text;

            cmd.Parameters.Add("ForeignNoF", SqlDbType.NVarChar);
            cmd.Parameters["ForeignNoF"].Value = this.TextBox14.Text + this.TextBox15.Text;

            cmd.Parameters.Add("ForeignNoT", SqlDbType.NVarChar);
            cmd.Parameters["ForeignNoT"].Value = this.TextBox16.Text + this.TextBox17.Text;

            cmd.Parameters.Add("Office_Phone", SqlDbType.NVarChar);
            cmd.Parameters["Office_Phone"].Value = this.TextBox9.Text + this.TextBox7.Text;

            cmd.Parameters.Add("Staff", SqlDbType.NVarChar);
            cmd.Parameters["Staff"].Value = this.Label1.Text;


            FirstName = TextBox1.Text;
            LastName = TextBox2.Text;
            FullName = TextBox1.Text + " " + TextBox2.Text;

            cmd.CommandText = "INSERT INTO [Customer] ([Type], [NatureBusiness], [Title], [Firstname], [Lastname], [Fullname], [Company], [Mobile_Phone], [Office_Phone], [ForeignNoF], [ForeignNoT], [Email], [Job_Title], [City], [Country], [Ac_Manager], [Remarks], [Staff]) VALUES (@Type, @NatureBusiness, @Title, @Firstname, @Lastname, @Fullname, @Company, @Mobile_Phone, @Office_Phone, @ForeignNoF, @ForeignNoT, @Email, @Job_Title, @City, @Country, @Ac_Manager, @Remarks, @Staff)";




            try 
            {



                conn.Open();


                cmd.ExecuteNonQuery();
                ScriptManager.RegisterStartupScript(this, this.GetType(), "popup", "alert('Record Saved Successfully.');window.location='DatabaseEntry.aspx';", true);



            }
            catch (Exception ex)
            {

               Response.Write("Oops!! Following error occured: " + ex.Message.ToString());


            }
            finally
            {

                conn.Close();
                cmd.Dispose();

            }


        }
  }