DC2890 Ответов: 4

System.stackoverflowexception ошибка в C#


я пишу ниже кода.
и я получаю
stackoverflowexception 
ошибка

Я отладил код и на линии произошла ошибка
OleDbDataReader ord = ocmd.Метода executereader();

Что я уже пробовал:

if (ddltype.Text == "NCS DA-Other Survey-Candidate beneficiaries NCSC-DAs")
{
   OleDbConnection Olecon = new OleDbConnection((@"Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + Server.MapPath("uploadExcel/" + ddltype.Text + "/" + filename + "") + ";" + "Extended Properties=Excel 8.0;"));
   OleDbCommand ocmd = new OleDbCommand("Select * FROM [Sheet1$]", Olecon);
   Olecon.Open();
   OleDbDataReader ord = ocmd.ExecuteReader();

   while (ord.Read())
   {
      // string sql = "";
      string Sd = ord["Date_of_the_interview"].ToString();
      string St = ord["DA_Start_Time_stamp"].ToString();
      string Et = ord["HH_End_Time_stamp"].ToString();
      try
      {
         if (ord["Scheme"].ToString().Trim() != "Scheme")
         {
            try
            {
                if (Sd.Length == 7)
                {
                   string day = "0" + Sd.Substring(0, 1);
                   string month = Sd.Substring(1, 2);
                   string Year = Sd.Substring(3, 4);
                   Sd = Year + month + day;
                }
                else
                {
                   string day = Sd.Substring(0, 2);
                   string month = Sd.Substring(2, 2);
                   string Year = Sd.Substring(4, 4);
                   Sd = Year + month + day;
                }
             }
             catch (Exception)
             {
                // throw;
             }

             try
             {
                St = St.Substring(9, 8);
                Et = Et.Substring(9, 8);
             }
             catch (Exception)
             {
                // throw;
             }
             string sql11 = "Select * from NCS_DA_Other_Survey_Candidate_beneficiaries_NCSC_DAs where Auto_Form='" + ord["Auto_Form"].ToString().Trim() + "'";
             DataTable dt11 = new DataTable();
             dt11 = GetDataTable(sql11);
             if (dt11.Rows.Count == 0)
             {
                string sql2 = "INSERT INTO NCS_DA_Other_Survey_Candidate_beneficiaries_NCSC_DAs (Scheme,Survey_Type,State,Districts,Questionnaire_name,Interviewer_ID,DA_Start_Time_stamp,HH_End_Time_stamp,Respondent_Name,Respondent_contact_number,Date_of_the_interview,Auto_Job,Job_Name,Auto_Form,Field_Office,Center,Segment,Q1_1,Q1_2,Q3,Q4,Q5a,Q5b,DA_Q7,DA_Q8,DA_Q8_Others,DA_Q9,DA_Q9_Others,DA_Q10,DA_Q11,DA_Q12,DA_Q13,DA_Q14,DA_Q15,DA_Q16_1,DA_Q16_2,DA_Q16_3,DA_Q16_4,DA_Q16_5,DA_Q16_Others,DA_Q17,DA_Q17a,DA_Q17_1,DA_Q17_2,DA_Q18,DA_Q19,DA_Q20,DA_Q20_Others,DA_Q21,DA_Q22,DA_Q23_1,DA_Q23_2,DA_Q23_3,DA_Q23_4,DA_Q23_5,DA_Q23_6,DA_Q23_7,DA_Q23_Others,DA_Q24_1,DA_Q24_2,DA_Q24_3,DA_Q24_4,DA_Q24_5,DA_Q24_6,DA_Q25,DA_Q26_1,DA_Q26_2,DA_Q26_3,DA_Q26_4,DA_Q27,DA_Q28,DA_Q30,DA_Q31,DA_Q31_Others,DA_Q32,DA_Q33,DA_Q34,DA_Q35,DA_Q36,DA_Q37,DA_Q38_1,DA_Q38_2,DA_Q38_3,DA_Q38_4,DA_Q38_5,DA_Q38_6,DA_Q38_7,DA_Q38_8,DA_Q38_9,DA_Q38_10,DA_Q38_Others,DA_Q39,HH_Q5,HH_Q6,HH_Q7,HH_Q7_Other,HH_Q8,HH_Q8a,HH_Q8a_Other,HH_Q9,HH_Q10,HH_Q10_Other,HH_Q11,HH_Q11_Other,HH_Q12,HH_Q13,HH_Q14,HH_Q15_1,HH_Q15_2,HH_Q15_3,HH_Q15_4,HH_Q15_5,HH_Q15_6,HH_Q15_7,HH_Q15_8,HH_Q15_Other,HH_Q16,HH_Q16_Other,HH_Q17,HH_Q18,HH_Q18_Name1,HH_Q18_Name2,HH_Q18_Name3,HH_Q18_Name4,HH_Q18_Name5,HH_Q18_Name6,HH_Q18_Name7,HH_Q18_Name8,HH_Q18_Name9,HH_Q18_Name10,HH_Q18_Name11,HH_Q18a_1,HH_Q18a_2,HH_Q18a_3,HH_Q18a_4,HH_Q18a_5,HH_Q18a_6,HH_Q18a_7,HH_Q18a_8,HH_Q18a_9,HH_Q18a_10,HH_Q18a_11,HH_Q18a_Other1,HH_Q18a_Other2,HH_Q18a_Other3,HH_Q18a_Other4,HH_Q18a_Other5,HH_Q18a_Other6,HH_Q18a_Other7,HH_Q18a_Other8,HH_Q18a_Other9,HH_Q18a_Other10,HH_Q18a_Other11,HH_Q19a_Gender,HH_Q19b_age,HH_Q19c_marital_status,HH_Q20a,HH_Q21a,HH_Q21b_1,HH_Q21b_2,HH_Q21b_3,HH_Q21b_4,HH_Q21b_5,HH_Q21b_6,HH_Q21b_7,HH_Q21b_8,HH_Q22_1,HH_Q22_2,HH_Q22_3,HH_Q22_4,HH_Q22_5,HH_Q22_6,HH_Q22_7,HH_Q22_8,HH_Q22_9,HH_Q22_10,HH_Q22_Other,HH_Q23_1,HH_Q23_2,HH_Q23_3,HH_Q23_4,HH_Q23_5,HH_Q23_6,HH_Q23_7,HH_Q23_8,HH_Q23_9,HH_Q23_10,HH_Q23_Other,HH_Q24,HH_Q25,HH_Q26,HH_Q27,HH_Q27_Other,HH_Q28,HH_Q29,HH_Q30_Name_of_City,HH_Q30_Name_of_State,HH_Q31,HH_Q32_1,HH_Q32_2,HH_Q32_3,HH_Q32_4,HH_Q32_5,HH_Q32_6,HH_Q32_7,HH_Q32_8,HH_Q32_9,HH_Q32_10,HH_Q33,HH_Q34,HH_Q35a_number_of_Children,HH_Q35a_number_of_Males,HH_Q35a_number_of_Females,HH_Q35b_number_of_Children,HH_Q35b_number_of_Males,HH_Q35b_number_of_Females,HH_Q35c_number_of_Children,HH_Q35c_number_of_Males,HH_Q35c_number_of_Females)VALUES('" + ord["Scheme"].ToString().Trim() + "','" + ord["Survey_Type"].ToString().Trim() + "','" + ord["State"].ToString().Trim() + "','" + ord["Districts"].ToString().Trim() + "','" + ord["Questionnaire_name"].ToString().Trim() + "','" + ord["Interviewer_ID"].ToString().Trim() + "','" + St + "','" + Et + "','" + ord["Respondent_Name"].ToString().Trim() + "','" + ord["Respondent_contact_number"].ToString().Trim() + "','" + Sd + "','" + ord["Auto_Job"].ToString().Trim() + "','" + ord["Job_Name"].ToString().Trim() + "','" + ord["Auto_Form"].ToString().Trim() + "','" + ord["Field_Office"].ToString().Trim() + "','" + ord["Center"].ToString().Trim() + "','" + ord["Segment"].ToString().Trim() + "','" + ord["Q1_1"].ToString().Trim() + "','" + ord["Q1_2"].ToString().Trim() + "','" + ord["Q3"].ToString().Trim() + "','" + ord["Q4"].ToString().Trim() + "','" + ord["Q5a"].ToString().Trim() + "','" + ord["Q5b"].ToString().Trim() + "','" + ord["DA_Q7"].ToString().Trim() + "','" + ord["DA_Q8"].ToString().Trim() + "','" + ord["DA_Q8_Others"].ToString().Trim() + "','" + ord["DA_Q9"].ToString().Trim() + "','" + ord["DA_Q9_Others"].ToString().Trim() + "','" + ord["DA_Q10"].ToString().Trim() + "','" + ord["DA_Q11"].ToString().Trim() + "','" + ord["DA_Q12"].ToString().Trim() + "','" + ord["DA_Q13"].ToString().Trim() + "','" + ord["DA_Q14"].ToString().Trim() + "','" + ord["DA_Q15"].ToString().Trim() + "','" + ord["DA_Q16_1"].ToString().Trim() + "','" + ord["DA_Q16_2"].ToString().Trim() + "','" + ord["DA_Q16_3"].ToString().Trim() + "','" + ord["DA_Q16_4"].ToString().Trim() + "','" + ord["DA_Q16_5"].ToString().Trim() + "','" + ord["DA_Q16_Others"].ToString().Trim() + "','" + ord["DA_Q17"].ToString().Trim() + "','" + ord["DA_Q17a"].ToString().Trim() + "','" + ord["DA_Q17_1"].ToString().Trim() + "','" + ord["DA_Q17_2"].ToString().Trim() + "','" + ord["DA_Q18"].ToString().Trim() + "','" + ord["DA_Q19"].ToString().Trim() + "','" + ord["DA_Q20"].ToString().Trim() + "','" + ord["DA_Q20_Others"].ToString().Trim() + "','" + ord["DA_Q21"].ToString().Trim() + "','" + ord["DA_Q22"].ToString().Trim() + "','" + ord["DA_Q23_1"].ToString().Trim() + "','" + ord["DA_Q23_2"].ToString().Trim() + "','" + ord["DA_Q23_3"].ToString().Trim() + "','" + ord["DA_Q23_4"].ToString().Trim() + "','" + ord["DA_Q23_5"].ToString().Trim() + "','" + ord["DA_Q23_6"].ToString().Trim() + "','" + ord["DA_Q23_7"].ToString().Trim() + "','" + ord["DA_Q23_Others"].ToString().Trim() + "','" + ord["DA_Q24_1"].ToString().Trim() + "','" + ord["DA_Q24_2"].ToString().Trim() + "','" + ord["DA_Q24_3"].ToString().Trim() + "','" + ord["DA_Q24_4"].ToString().Trim() + "','" + ord["DA_Q24_5"].ToString().Trim() + "','" + ord["DA_Q24_6"].ToString().Trim() + "','" + ord["DA_Q25"].ToString().Trim() + "','" + ord["DA_Q26_1"].ToString().Trim() + "','" + ord["DA_Q26_2"].ToString().Trim() + "','" + ord["DA_Q26_3"].ToString().Trim() + "','" + ord["DA_Q26_4"].ToString().Trim() + "','" + ord["DA_Q27"].ToString().Trim() + "','" + ord["DA_Q28"].ToString().Trim() + "','" + ord["DA_Q30"].ToString().Trim() + "','" + ord["DA_Q31"].ToString().Trim() + "','" + ord["DA_Q31_Others"].ToString().Trim() + "','" + ord["DA_Q32"].ToString().Trim() + "','" + ord["DA_Q33"].ToString().Trim() + "','" + ord["DA_Q34"].ToString().Trim() + "','" + ord["DA_Q35"].ToString().Trim() + "','" + ord["DA_Q36"].ToString().Trim() + "','" + ord["DA_Q37"].ToString().Trim() + "','" + ord["DA_Q38_1"].ToString().Trim() + "','" + ord["DA_Q38_2"].ToString().Trim() + "','" + ord["DA_Q38_3"].ToString().Trim() + "','" + ord["DA_Q38_4"].ToString().Trim() + "','" + ord["DA_Q38_5"].ToString().Trim() + "','" + ord["DA_Q38_6"].ToString().Trim() + "','" + ord["DA_Q38_7"].ToString().Trim() + "','" + ord["DA_Q38_8"].ToString().Trim() + "','" + ord["DA_Q38_9"].ToString().Trim() + "','" + ord["DA_Q38_10"].ToString().Trim() + "','" + ord["DA_Q38_Others"].ToString().Trim() + "','" + ord["DA_Q39"].ToString().Trim() + "','" + ord["HH_Q5"].ToString().Trim() + "','" + ord["HH_Q6"].ToString().Trim() + "','" + ord["HH_Q7"].ToString().Trim() + "','" + ord["HH_Q7_Other"].ToString().Trim() + "','" + ord["HH_Q8"].ToString().Trim() + "','" + ord["HH_Q8a"].ToString().Trim() + "','" + ord["HH_Q8a_Other"].ToString().Trim() + "','" + ord["HH_Q9"].ToString().Trim() + "','" + ord["HH_Q10"].ToString().Trim() + "','" + ord["HH_Q10_Other"].ToString().Trim() + "','" + ord["HH_Q11"].ToString().Trim() + "','" + ord["HH_Q11_Other"].ToString().Trim() + "','" + ord["HH_Q12"].ToString().Trim() + "','" + ord["HH_Q13"].ToString().Trim() + "','" + ord["HH_Q14"].ToString().Trim() + "','" + ord["HH_Q15_1"].ToString().Trim() + "','" + ord["HH_Q15_2"].ToString().Trim() + "','" + ord["HH_Q15_3"].ToString().Trim() + "','" + ord["HH_Q15_4"].ToString().Trim() + "','" + ord["HH_Q15_5"].ToString().Trim() + "','" + ord["HH_Q15_6"].ToString().Trim() + "','" + ord["HH_Q15_7"].ToString().Trim() + "','" + ord["HH_Q15_8"].ToString().Trim() + "','" + ord["HH_Q15_Other"].ToString().Trim() + "','" + ord["HH_Q16"].ToString().Trim() + "','" + ord["HH_Q16_Other"].ToString().Trim() + "','" + ord["HH_Q17"].ToString().Trim() + "','" + ord["HH_Q18"].ToString().Trim() + "','" + ord["HH_Q18_Name1"].ToString().Trim() + "','" + ord["HH_Q18_Name2"].ToString().Trim() + "','" + ord["HH_Q18_Name3"].ToString().Trim() + "','" + ord["HH_Q18_Name4"].ToString().Trim() + "','" + ord["HH_Q18_Name5"].ToString().Trim() + "','" + ord["HH_Q18_Name6"].ToString().Trim() + "','" + ord["HH_Q18_Name7"].ToString().Trim() + "','" + ord["HH_Q18_Name8"].ToString().Trim() + "','" + ord["HH_Q18_Name9"].ToString().Trim() + "','" + ord["HH_Q18_Name10"].ToString().Trim() + "','" + ord["HH_Q18_Name11"].ToString().Trim() + "','" + ord["HH_Q18a_1"].ToString().Trim() + "','" + ord["HH_Q18a_2"].ToString().Trim() + "','" + ord["HH_Q18a_3"].ToString().Trim() + "','" + ord["HH_Q18a_4"].ToString().Trim() + "','" + ord["HH_Q18a_5"].ToString().Trim() + "','" + ord["HH_Q18a_6"].ToString().Trim() + "','" + ord["HH_Q18a_7"].ToString().Trim() + "','" + ord["HH_Q18a_8"].ToString().Trim() + "','" + ord["HH_Q18a_9"].ToString().Trim() + "','" + ord["HH_Q18a_10"].ToString().Trim() + "','" + ord["HH_Q18a_11"].ToString().Trim() + "','" + ord["HH_Q18a_Other1"].ToString().Trim() + "','" + ord["HH_Q18a_Other2"].ToString().Trim() + "','" + ord["HH_Q18a_Other3"].ToString().Trim() + "','" + ord["HH_Q18a_Other4"].ToString().Trim() + "','" + ord["HH_Q18a_Other5"].ToString().Trim() + "','" + ord["HH_Q18a_Other6"].ToString().Trim() + "','" + ord["HH_Q18a_Other7"].ToString().Trim() + "','" + ord["HH_Q18a_Other8"].ToString().Trim() + "','" + ord["HH_Q18a_Other9"].ToString().Trim() + "','" + ord["HH_Q18a_Other10"].ToString().Trim() + "','" + ord["HH_Q18a_Other11"].ToString().Trim() + "','" + ord["HH_Q19a_Gender"].ToString().Trim() + "','" + ord["HH_Q19b_age"].ToString().Trim() + "','" + ord["HH_Q19c_marital_status"].ToString().Trim() + "','" + ord["HH_Q20a"].ToString().Trim() + "','" + ord["HH_Q21a"].ToString().Trim() + "','" + ord["HH_Q21b_1"].ToString().Trim() + "','" + ord["HH_Q21b_2"].ToString().Trim() + "','" + ord["HH_Q21b_3"].ToString().Trim() + "','" + ord["HH_Q21b_4"].ToString().Trim() + "','" + ord["HH_Q21b_5"].ToString().Trim() + "','" + ord["HH_Q21b_6"].ToString().Trim() + "','" + ord["HH_Q21b_7"].ToString().Trim() + "','" + ord["HH_Q21b_8"].ToString().Trim() + "','" + ord["HH_Q22_1"].ToString().Trim() + "','" + ord["HH_Q22_2"].ToString().Trim() + "','" + ord["HH_Q22_3"].ToString().Trim() + "','" + ord["HH_Q22_4"].ToString().Trim() + "','" + ord["HH_Q22_5"].ToString().Trim() + "','" + ord["HH_Q22_6"].ToString().Trim() + "','" + ord["HH_Q22_7"].ToString().Trim() + "','" + ord["HH_Q22_8"].ToString().Trim() + "','" + ord["HH_Q22_9"].ToString().Trim() + "','" + ord["HH_Q22_10"].ToString().Trim() + "','" + ord["HH_Q22_Other"].ToString().Trim() + "','" + ord["HH_Q23_1"].ToString().Trim() + "','" + ord["HH_Q23_2"].ToString().Trim() + "','" + ord["HH_Q23_3"].ToString().Trim() + "','" + ord["HH_Q23_4"].ToString().Trim() + "','" + ord["HH_Q23_5"].ToString().Trim() + "','" + ord["HH_Q23_6"].ToString().Trim() + "','" + ord["HH_Q23_7"].ToString().Trim() + "','" + ord["HH_Q23_8"].ToString().Trim() + "','" + ord["HH_Q23_9"].ToString().Trim() + "','" + ord["HH_Q23_10"].ToString().Trim() + "','" + ord["HH_Q23_Other"].ToString().Trim() + "','" + ord["HH_Q24"].ToString().Trim() + "','" + ord["HH_Q25"].ToString().Trim() + "','" + ord["HH_Q26"].ToString().Trim() + "','" + ord["HH_Q27"].ToString().Trim() + "','" + ord["HH_Q27_Other"].ToString().Trim() + "','" + ord["HH_Q28"].ToString().Trim() + "','" + ord["HH_Q29"].ToString().Trim() + "','" + ord["HH_Q30_Name_of_City"].ToString().Trim() + "','" + ord["HH_Q30_Name_of_State"].ToString().Trim() + "','" + ord["HH_Q31"].ToString().Trim() + "','" + ord["HH_Q32_1"].ToString().Trim() + "','" + ord["HH_Q32_2"].ToString().Trim() + "','" + ord["HH_Q32_3"].ToString().Trim() + "','" + ord["HH_Q32_4"].ToString().Trim() + "','" + ord["HH_Q32_5"].ToString().Trim() + "','" + ord["HH_Q32_6"].ToString().Trim() + "','" + ord["HH_Q32_7"].ToString().Trim() + "','" + ord["HH_Q32_8"].ToString().Trim() + "','" + ord["HH_Q32_9"].ToString().Trim() + "','" + ord["HH_Q32_10"].ToString().Trim() + "','" + ord["HH_Q33"].ToString().Trim() + "','" + ord["HH_Q34"].ToString().Trim() + "','" + ord["HH_Q35a_number_of_Children"].ToString().Trim() + "','" + ord["HH_Q35a_number_of_Males"].ToString().Trim() + "','" + ord["HH_Q35a_number_of_Females"].ToString().Trim() + "','" + ord["HH_Q35b_number_of_Children"].ToString().Trim() + "','" + ord["HH_Q35b_number_of_Males"].ToString().Trim() + "','" + ord["HH_Q35b_number_of_Females"].ToString().Trim() + "','" + ord["HH_Q35c_number_of_Children"].ToString().Trim() + "','" + ord["HH_Q35c_number_of_Males"].ToString().Trim() + "','" + ord["HH_Q35c_number_of_Females"].ToString().Trim() + "')";

                                                SqlCommand cmd = new SqlCommand(sql2, con);
                                                con.Open();
                                                int status = cmd.ExecuteNonQuery();
                                                con.Close();



                                            }
                                            else
                                            {
                                                string sql3 = "Update NCS_DA_Other_Survey_Candidate_beneficiaries_NCSC_DAs set Scheme='" + ord["Scheme"].ToString().Trim() + "',Survey_Type='" + ord["Survey_Type"].ToString().Trim() + "',State='" + ord["State"].ToString().Trim() + "',Districts='" + ord["Districts"].ToString().Trim() + "',Questionnaire_name='" + ord["Questionnaire_name"].ToString().Trim() + "',Interviewer_ID='" + ord["Interviewer_ID"].ToString().Trim() + "',DA_Start_Time_stamp='" + St + "',HH_End_Time_stamp='" + Et + "',Respondent_Name='" + ord["Respondent_Name"].ToString().Trim() + "',Respondent_contact_number='" + ord["Respondent_contact_number"].ToString().Trim() + "',Date_of_the_interview='" + Sd + "',Auto_Job='" + ord["Auto_Job"].ToString().Trim() + "',Job_Name='" + ord["Job_Name"].ToString().Trim() + "',Field_Office='" + ord["Field_Office"].ToString().Trim() + "',Center='" + ord["Center"].ToString().Trim() + "',Segment='" + ord["Segment"].ToString().Trim() + "',Q1_1='" + ord["Q1_1"].ToString().Trim() + "',Q1_2='" + ord["Q1_2"].ToString().Trim() + "',Q3='" + ord["Q3"].ToString().Trim() + "',Q4='" + ord["Q4"].ToString().Trim() + "',Q5a='" + ord["Q5a"].ToString().Trim() + "',Q5b='" + ord["Q5b"].ToString().Trim() + "',DA_Q7='" + ord["DA_Q7"].ToString().Trim() + "',DA_Q8='" + ord["DA_Q8"].ToString().Trim() + "',DA_Q8_Others='" + ord["DA_Q8_Others"].ToString().Trim() + "',DA_Q9='" + ord["DA_Q9"].ToString().Trim() + "',DA_Q9_Others='" + ord["DA_Q9_Others"].ToString().Trim() + "',DA_Q10='" + ord["DA_Q10"].ToString().Trim() + "',DA_Q11='" + ord["DA_Q11"].ToString().Trim() + "',DA_Q12='" + ord["DA_Q12"].ToString().Trim() + "',DA_Q13='" + ord["DA_Q13"].ToString().Trim() + "',DA_Q14='" + ord["DA_Q14"].ToString().Trim() + "',DA_Q15='" + ord["DA_Q15"].ToString().Trim() + "',DA_Q16_1='" + ord["DA_Q16_1"].ToString().Trim() + "',DA_Q16_2='" + ord["DA_Q16_2"].ToString().Trim() + "',DA_Q16_3='" + ord["DA_Q16_3"].ToString().Trim() + "',DA_Q16_4='" + ord["DA_Q16_4"].ToString().Trim() + "',DA_Q16_5='" + ord["DA_Q16_5"].ToString().Trim() + "',DA_Q16_Others='" + ord["DA_Q16_Others"].ToString().Trim() + "',DA_Q17='" + ord["DA_Q17"].ToString().Trim() + "',DA_Q17a='" + ord["DA_Q17a"].ToString().Trim() + "',DA_Q17_1='" + ord["DA_Q17_1"].ToString().Trim() + "',DA_Q17_2='" + ord["DA_Q17_2"].ToString().Trim() + "',DA_Q18='" + ord["DA_Q18"].ToString().Trim() + "',DA_Q19='" + ord["DA_Q19"].ToString().Trim() + "',DA_Q20='" + ord["DA_Q20"].ToString().Trim() + "',DA_Q20_Others='" + ord["DA_Q20_Others"].ToString().Trim() + "',DA_Q21='" + ord["DA_Q21"].ToString().Trim() + "',DA_Q22='" + ord["DA_Q22"].ToString().Trim() + "',DA_Q23_1='" + ord["DA_Q23_1"].ToString().Trim() + "',DA_Q23_2='" + ord["DA_Q23_2"].ToString().Trim() + "',DA_Q23_3='" + ord["DA_Q23_3"].ToString().Trim() + "',DA_Q23_4='" + ord["DA_Q23_4"].ToString().Trim() + "',DA_Q23_5='" + ord["DA_Q23_5"].ToString().Trim() + "',DA_Q23_6='" + ord["DA_Q23_6"].ToString().Trim() + "',DA_Q23_7='" + ord["DA_Q23_7"].ToString().Trim() + "',DA_Q23_Others='" + ord["DA_Q23_Others"].ToString().Trim() + "',DA_Q24_1='" + ord["DA_Q24_1"].ToString().Trim() + "',DA_Q24_2='" + ord["DA_Q24_2"].ToString().Trim() + "',DA_Q24_3='" + ord["DA_Q24_3"].ToString().Trim() + "',DA_Q24_4='" + ord["DA_Q24_4"].ToString().Trim() + "',DA_Q24_5='" + ord["DA_Q24_5"].ToString().Trim() + "',DA_Q24_6='" + ord["DA_Q24_6"].ToString().Trim() + "',DA_Q25='" + ord["DA_Q25"].ToString().Trim() + "',DA_Q26_1='" + ord["DA_Q26_1"].ToString().Trim() + "',DA_Q26_2='" + ord["DA_Q26_2"].ToString().Trim() + "',DA_Q26_3='" + ord["DA_Q26_3"].ToString().Trim() + "',DA_Q26_4='" + ord["DA_Q26_4"].ToString().Trim() + "',DA_Q27='" + ord["DA_Q27"].ToString().Trim() + "',DA_Q28='" + ord["DA_Q28"].ToString().Trim() + "',DA_Q30='" + ord["DA_Q30"].ToString().Trim() + "',DA_Q31='" + ord["DA_Q31"].ToString().Trim() + "',DA_Q31_Others='" + ord["DA_Q31_Others"].ToString().Trim() + "',DA_Q32='" + ord["DA_Q32"].ToString().Trim() + "',DA_Q33='" + ord["DA_Q33"].ToString().Trim() + "',DA_Q34='" + ord["DA_Q34"].ToString().Trim() + "',DA_Q35='" + ord["DA_Q35"].ToString().Trim() + "',DA_Q36='" + ord["DA_Q36"].ToString().Trim() + "',DA_Q37='" + ord["DA_Q37"].ToString().Trim() + "',DA_Q38_1='" + ord["DA_Q38_1"].ToString().Trim() + "',DA_Q38_2='" + ord["DA_Q38_2"].ToString().Trim() + "',DA_Q38_3='" + ord["DA_Q38_3"].ToString().Trim() + "',DA_Q38_4='" + ord["DA_Q38_4"].ToString().Trim() + "',DA_Q38_5='" + ord["DA_Q38_5"].ToString().Trim() + "',DA_Q38_6='" + ord["DA_Q38_6"].ToString().Trim() + "',DA_Q38_7='" + ord["DA_Q38_7"].ToString().Trim() + "',DA_Q38_8='" + ord["DA_Q38_8"].ToString().Trim() + "',DA_Q38_9='" + ord["DA_Q38_9"].ToString().Trim() + "',DA_Q38_10='" + ord["DA_Q38_10"].ToString().Trim() + "',DA_Q38_Others='" + ord["DA_Q38_Others"].ToString().Trim() + "',DA_Q39='" + ord["DA_Q39"].ToString().Trim() + "',HH_Q5='" + ord["HH_Q5"].ToString().Trim() + "',HH_Q6='" + ord["HH_Q6"].ToString().Trim() + "',HH_Q7='" + ord["HH_Q7"].ToString().Trim() + "',HH_Q7_Other='" + ord["HH_Q7_Other"].ToString().Trim() + "',HH_Q8='" + ord["HH_Q8"].ToString().Trim() + "',HH_Q8a='" + ord["HH_Q8a"].ToString().Trim() + "',HH_Q8a_Other='" + ord["HH_Q8a_Other"].ToString().Trim() + "',HH_Q9='" + ord["HH_Q9"].ToString().Trim() + "',HH_Q10='" + ord["HH_Q10"].ToString().Trim() + "',HH_Q10_Other='" + ord["HH_Q10_Other"].ToString().Trim() + "',HH_Q11='" + ord["HH_Q11"].ToString().Trim() + "',HH_Q11_Other='" + ord["HH_Q11_Other"].ToString().Trim() + "',HH_Q12='" + ord["HH_Q12"].ToString().Trim() + "',HH_Q13='" + ord["HH_Q13"].ToString().Trim() + "',HH_Q14='" + ord["HH_Q14"].ToString().Trim() + "',HH_Q15_1='" + ord["HH_Q15_1"].ToString().Trim() + "',HH_Q15_2='" + ord["HH_Q15_2"].ToString().Trim() + "',HH_Q15_3='" + ord["HH_Q15_3"].ToString().Trim() + "',HH_Q15_4='" + ord["HH_Q15_4"].ToString().Trim() + "',HH_Q15_5='" + ord["HH_Q15_5"].ToString().Trim() + "',HH_Q15_6='" + ord["HH_Q15_6"].ToString().Trim() + "',HH_Q15_7='" + ord["HH_Q15_7"].ToString().Trim() + "',HH_Q15_8='" + ord["HH_Q15_8"].ToString().Trim() + "',HH_Q15_Other='" + ord["HH_Q15_Other"].ToString().Trim() + "',HH_Q16='" + ord["HH_Q16"].ToString().Trim() + "',HH_Q16_Other='" + ord["HH_Q16_Other"].ToString().Trim() + "',HH_Q17='" + ord["HH_Q17"].ToString().Trim() + "',HH_Q18='" + ord["HH_Q18"].ToString().Trim() + "',HH_Q18_Name1='" + ord["HH_Q18_Name1"].ToString().Trim() + "',HH_Q18_Name2='" + ord["HH_Q18_Name2"].ToString().Trim() + "',HH_Q18_Name3='" + ord["HH_Q18_Name3"].ToString().Trim() + "',HH_Q18_Name4='" + ord["HH_Q18_Name4"].ToString().Trim() + "',HH_Q18_Name5='" + ord["HH_Q18_Name5"].ToString().Trim() + "',HH_Q18_Name6='" + ord["HH_Q18_Name6"].ToString().Trim() + "',HH_Q18_Name7='" + ord["HH_Q18_Name7"].ToString().Trim() + "',HH_Q18_Name8='" + ord["HH_Q18_Name8"].ToString().Trim() + "',HH_Q18_Name9='" + ord["HH_Q18_Name9"].ToString().Trim() + "',HH_Q18_Name10='" + ord["HH_Q18_Name10"].ToString().Trim() + "',HH_Q18_Name11='" + ord["HH_Q18_Name11"].ToString().Trim() + "',HH_Q18a_1='" + ord["HH_Q18a_1"].ToString().Trim() + "',HH_Q18a_2='" + ord["HH_Q18a_2"].ToString().Trim() + "',HH_Q18a_3='" + ord["HH_Q18a_3"].ToString().Trim() + "',HH_Q18a_4='" + ord["HH_Q18a_4"].ToString().Trim() + "',HH_Q18a_5='" + ord["HH_Q18a_5"].ToString().Trim() + "',HH_Q18a_6='" + ord["HH_Q18a_6"].ToString().Trim() + "',HH_Q18a_7='" + ord["HH_Q18a_7"].ToString().Trim() + "',HH_Q18a_8='" + ord["HH_Q18a_8"].ToString().Trim() + "',HH_Q18a_9='" + ord["HH_Q18a_9"].ToString().Trim() + "',HH_Q18a_10='" + ord["HH_Q18a_10"].ToString().Trim() + "',HH_Q18a_11='" + ord["HH_Q18a_11"].ToString().Trim() + "',HH_Q18a_Other1='" + ord["HH_Q18a_Other1"].ToString().Trim() + "',HH_Q18a_Other2='" + ord["HH_Q18a_Other2"].ToString().Trim() + "',HH_Q18a_Other3='" + ord["HH_Q18a_Other3"].ToString().Trim() + "',HH_Q18a_Other4='" + ord["HH_Q18a_Other4"].ToString().Trim() + "',HH_Q18a_Other5='" + ord["HH_Q18a_Other5"].ToString().Trim() + "',HH_Q18a_Other6='" + ord["HH_Q18a_Other6"].ToString().Trim() + "',HH_Q18a_Other7='" + ord["HH_Q18a_Other7"].ToString().Trim() + "',HH_Q18a_Other8='" + ord["HH_Q18a_Other8"].ToString().Trim() + "',HH_Q18a_Other9='" + ord["HH_Q18a_Other9"].ToString().Trim() + "',HH_Q18a_Other10='" + ord["HH_Q18a_Other10"].ToString().Trim() + "',HH_Q18a_Other11='" + ord["HH_Q18a_Other11"].ToString().Trim() + "',HH_Q19a_Gender='" + ord["HH_Q19a_Gender"].ToString().Trim() + "',HH_Q19b_age='" + ord["HH_Q19b_age"].ToString().Trim() + "',HH_Q19c_marital_status='" + ord["HH_Q19c_marital_status"].ToString().Trim() + "',HH_Q20a='" + ord["HH_Q20a"].ToString().Trim() + "',HH_Q21a='" + ord["HH_Q21a"].ToString().Trim() + "',HH_Q21b_1='" + ord["HH_Q21b_1"].ToString().Trim() + "',HH_Q21b_2='" + ord["HH_Q21b_2"].ToString().Trim() + "',HH_Q21b_3='" + ord["HH_Q21b_3"].ToString().Trim() + "',HH_Q21b_4='" + ord["HH_Q21b_4"].ToString().Trim() + "',HH_Q21b_5='" + ord["HH_Q21b_5"].ToString().Trim() + "',HH_Q21b_6='" + ord["HH_Q21b_6"].ToString().Trim() + "',HH_Q21b_7='" + ord["HH_Q21b_7"].ToString().Trim() + "',HH_Q21b_8='" + ord["HH_Q21b_8"].ToString().Trim() + "',HH_Q22_1='" + ord["HH_Q22_1"].ToString().Trim() + "',HH_Q22_2='" + ord["HH_Q22_2"].ToString().Trim() + "',HH_Q22_3='" + ord["HH_Q22_3"].ToString().Trim() + "',HH_Q22_4='" + ord["HH_Q22_4"].ToString().Trim() + "',HH_Q22_5='" + ord["HH_Q22_5"].ToString().Trim() + "',HH_Q22_6='" + ord["HH_Q22_6"].ToString().Trim() + "',HH_Q22_7='" + ord["HH_Q22_7"].ToString().Trim() + "',HH_Q22_8='" + ord["HH_Q22_8"].ToString().Trim() + "',HH_Q22_9='" + ord["HH_Q22_9"].ToString().Trim() + "',HH_Q22_10='" + ord["HH_Q22_10"].ToString().Trim() + "',HH_Q22_Other='" + ord["HH_Q22_Other"].ToString().Trim() + "',HH_Q23_1='" + ord["HH_Q23_1"].ToString().Trim() + "',HH_Q23_2='" + ord["HH_Q23_2"].ToString().Trim() + "',HH_Q23_3='" + ord["HH_Q23_3"].ToString().Trim() + "',HH_Q23_4='" + ord["HH_Q23_4"].ToString().Trim() + "',HH_Q23_5='" + ord["HH_Q23_5"].ToString().Trim() + "',HH_Q23_6='" + ord["HH_Q23_6"].ToString().Trim() + "',HH_Q23_7='" + ord["HH_Q23_7"].ToString().Trim() + "',HH_Q23_8='" + ord["HH_Q23_8"].ToString().Trim() + "',HH_Q23_9='" + ord["HH_Q23_9"].ToString().Trim() + "',HH_Q23_10='" + ord["HH_Q23_10"].ToString().Trim() + "',HH_Q23_Other='" + ord["HH_Q23_Other"].ToString().Trim() + "',HH_Q24='" + ord["HH_Q24"].ToString().Trim() + "',HH_Q25='" + ord["HH_Q25"].ToString().Trim() + "',HH_Q26='" + ord["HH_Q26"].ToString().Trim() + "',HH_Q27='" + ord["HH_Q27"].ToString().Trim() + "',HH_Q27_Other='" + ord["HH_Q27_Other"].ToString().Trim() + "',HH_Q28='" + ord["HH_Q28"].ToString().Trim() + "',HH_Q29='" + ord["HH_Q29"].ToString().Trim() + "',HH_Q30_Name_of_City='" + ord["HH_Q30_Name_of_City"].ToString().Trim() + "',HH_Q30_Name_of_State='" + ord["HH_Q30_Name_of_State"].ToString().Trim() + "',HH_Q31='" + ord["HH_Q31"].ToString().Trim() + "',HH_Q32_1='" + ord["HH_Q32_1"].ToString().Trim() + "',HH_Q32_2='" + ord["HH_Q32_2"].ToString().Trim() + "',HH_Q32_3='" + ord["HH_Q32_3"].ToString().Trim() + "',HH_Q32_4='" + ord["HH_Q32_4"].ToString().Trim() + "',HH_Q32_5='" + ord["HH_Q32_5"].ToString().Trim() + "',HH_Q32_6='" + ord["HH_Q32_6"].ToString().Trim() + "',HH_Q32_7='" + ord["HH_Q32_7"].ToString().Trim() + "',HH_Q32_8='" + ord["HH_Q32_8"].ToString().Trim() + "',HH_Q32_9='" + ord["HH_Q32_9"].ToString().Trim() + "',HH_Q32_10='" + ord["HH_Q32_10"].ToString().Trim() + "',HH_Q33='" + ord["HH_Q33"].ToString().Trim() + "',HH_Q34='" + ord["HH_Q34"].ToString().Trim() + "',HH_Q35a_number_of_Children='" + ord["HH_Q35a_number_of_Children"].ToString().Trim() + "',HH_Q35a_number_of_Males='" + ord["HH_Q35a_number_of_Males"].ToString().Trim() + "',HH_Q35a_number_of_Females='" + ord["HH_Q35a_number_of_Females"].ToString().Trim() + "',HH_Q35b_number_of_Children='" + ord["HH_Q35b_number_of_Children"].ToString().Trim() + "',HH_Q35b_number_of_Males='" + ord["HH_Q35b_number_of_Males"].ToString().Trim() + "',HH_Q35b_number_of_Females='" + ord["HH_Q35b_number_of_Females"].ToString().Trim() + "',HH_Q35c_number_of_Children='" + ord["HH_Q35c_number_of_Children"].ToString().Trim() + "',HH_Q35c_number_of_Males='" + ord["HH_Q35c_number_of_Males"].ToString().Trim() + "',HH_Q35c_number_of_Females='" + ord["HH_Q35c_number_of_Females"].ToString().Trim() + "' where Auto_Form='" + ord["Auto_Form"].ToString().Trim() + "'";
                // string sql3 = "";
                SqlCommand cmd = new SqlCommand(sql3, con);
                con.Open();
                int status = cmd.ExecuteNonQuery();
                con.Close();
             }
          }
       }
       catch (Exception ex)
       {
          flag = "False";
          //  throw;
       }
    }
}

Richard Deeming

Не делай этого так!

Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.

Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов | OWASP[^]

Richard Deeming

Наиболее распространенная причина а StackOverflowException это бесконечная рекурсия. Но в опубликованном вами коде, похоже, нет ничего, что вызывало бы ваш собственный код.

Попробуйте установить точку останова в начале кода, чтобы увидеть, если вы можете решить, является ли что-то вызывает его вызвать себя.

DC2890

спасибо за ответ..
Но это не проблема sql ..
Если я использую только строку в этом коде, то также получаю проблему переполнения стека

DC2890

если я комментирую запрос обновления, то он работает правильно

Stefan_Lang

Я предлагаю простой тест: обменяйте назначения операторов sql с очень простыми однострочными запросами (например, "выберите состояние из NCS_DA_Other_Survey_Candidate_beneficiaries_ncsc_das". Затем запустите свою программу и посмотрите, работает ли она без переполнения стека.

Если это так, то решение 4 правильно: конкатенация строк вызывает переполнение из-за слишком большого количества добавлений.

Иначе это что - то другое.

DC2890

я проверил с помощью простого запроса означает очень мало параметризованных запросов, то он работает нормально.
Но когда я использовал большой запрос, то возникла проблема.

4 Ответов

Рейтинг:
2

OriginalGriff

Мы не можем сказать - как сказал Ричард, StackOverflow обычно вызван проблемой рекурсии, но там нет очевидной рекурсии.

Чтобы просто объяснить, что означает переполнение стека, в приложении C# есть два типа памяти - кучная память, которая ограничена только памятью, доступной Windows, и которая используется для хранения всех экземпляров класса - всех значений ссылочного типа и некоторых значений типа значения.
А еще есть стек, который связан с одним потоком и вообще довольно мал - 1 МБ это нормально. Он используется для хранения локальных переменных, обратных адресов и тому подобного, и обычно там достаточно места, если только вы не сделаете что-то глупое. Например, рекурсия, когда вы вызываете метод прямо или косвенно из самого себя. При этом каждый раз, когда вызывается метод, он занимает больше пространства стека - другой набор локальных переменных, другой набор адресов возврата - и если вы не ограничите рекурсию, этот стек размером 1 МБ будет израсходован, а затем система выдаст исключение переполнения стека, потому что ей больше негде хранить важные данные.

В вашем случае вам нужно использовать отладчик: поместите точку останова вверху и внизу этого метода и посмотрите, есть ли способ, которым он вызывается без предварительного возврата. Если есть, то вам нужно выяснить, почему.
Возможно, ваше обновление вызывает обратный вызов от триггера или аналогичного, который пытается выполнить обновление снова, я не знаю - у нас нет доступа к вашим данным или вашему коду, пока он работает!
Удачи вам!


DC2890

можем ли мы увеличить объем стековой памяти?

OriginalGriff

Вы можете - google покажет вам, как это сделать, - но даже если вы сделаете рекурсию, проблема не будет решена этим, просто задержится на очень, очень короткое время.
Даже если вы увеличите размер стека до пары ГБ (что было бы феноменально плохой идеей, поскольку каждый поток в приложении yoru получит одинаковое количество), он все равно закончится, если вы не найдете и не исправите фактическую проблему!

Рейтинг:
1

Patrice T

Цитата:
я получаю ошибку stackoverflowexception

Отсутствует информация о позиции по ошибке, это должно быть в сообщении об ошибке.
Такого рода сообщения об ошибках показывают, когда что-то вызывает себя несколько тысяч раз (рекурсивно), вам нужно понять причину, если ничего очевидного, то отладчик это инструмент выбора, потому что вы сможете отслеживать свой код шаг за шагом, где-то он ведет себя не так, как ожидалось.

Ваш код ведет себя не так, как вы ожидаете, или вы не понимаете, почему !

Существует почти универсальное решение: запускайте свой код на отладчике шаг за шагом, проверяйте переменные.
Отладчик здесь, чтобы показать вам, что делает ваш код, и ваша задача-сравнить с тем, что он должен делать.
В отладчике нет никакой магии, он не знает, что должен делать ваш код, он не находит ошибок, он просто помогает вам, показывая, что происходит. Когда код не делает того, что ожидается, вы близки к ошибке.
Чтобы увидеть, что делает ваш код: просто установите точку останова и посмотрите, как работает ваш код, отладчик позволит вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения.

Отладчик - Википедия, свободная энциклопедия[^]

Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Базовая отладка с помощью Visual Studio 2010 - YouTube[^]

Отладка кода C# в Visual Studio - YouTube[^]

Отладчик здесь только для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.


DC2890

я отладил весь код .
ошибка произошла на линии
OleDbDataReader ord = ocmd.Метода executereader();

Рейтинг:
0

Member 14765654

Дикое предположение: Причина-количество звонков оператору+. разбейте его еще на несколько утверждений.

a+b+c+d = a+(b+(c+(..) с каждым ( открытием нового кадра стека.


Stefan_Lang

Я думаю, что это действительно может быть правдой: каждый " + " переводится в вызов функции, поэтому выражение с 50 добавлениями приводит к 50-кратной вложенной функции! Поскольку каждый уровень вложенности увеличивает использование стековой памяти, это может привести к переполнению.

DC2890

если я использую параметризованный запрос, то также возникла та же проблема

Рейтинг:
0

Dave Kreskowiak

Это, черт возьми, проблема SQL. Этот код настолько сильно сцеплен со строкой, что совершенно бесполезен.

НИКОГДА НЕ ИСПОЛЬЗУЙТЕ КОНКАТЕНАЦИЮ СТРОК ДЛЯ ПОСТРОЕНИЯ SQL-ЗАПРОСОВ! Вы не только сделали ваш код и базу данных уязвимыми для атак SQL-инъекций, но и сделали ваш код практически невозможным для отладки.

Избавьтесь от всей конкатенации строк и перестройте операторы, используя вместо этого параметры. Я предлагаю поискать в Google "параметризованный запрос C# sql", чтобы узнать, как это сделать.


DC2890

я проверил, что это не проблема sql.
Если я прокомментирую ниже код .

SqlCommand cmd = новая команда sqlcommand(sql2, con);
против.Открыть();
int status = cmd.Метод executenonquery();
против.Закрывать();


тогда и произошла ошибка

Dave Kreskowiak

Ваш комментарий ниже к другому ответу говорит об обратном.

я отладил весь код .
ошибка произошла на линии
OleDbDataReader ord = ocmd.Метода executereader();

DC2890

я также проверил процедуру хранения. возникла та же проблема.
Процедура хранения не содержит никаких конкатенаций