Использование DataTables из базы данных для заполнения программы при запуске без получения сообщений System.IndexOutOfRange

Привет всем и СПАСИБО В ПРЕДЕЛАХ!! за любую помощь я абсолютный новичок в программировании и программировании (4-5 месяцев)

Я использую Visual Studio 2012 и кодирования в C#

Я делаю приложение Windows Form, которое подключается к базе данных в SQL Server Management Studio

в основном у меня есть два поля со списком, которые должны быть заполнены данными из БД при запуске.

Я создал метод для заполнения полей со списком, и программа работает на 100%, при запуске ящики заполняются без пропущенных данных, все строки отображаются в полях со списком, и все делает именно то, что должно, и когда это должно сделай это...

ТЕМ НЕ МЕНИЕ!

каждый раз, когда я запускаю свою программу, я получаю это сообщение 5 раз (так как код, который генерирует сообщение, используется 5 раз)

System.IndexOutOfRangeException:There is no row at position 0
  at System.Data.RBTree1.GetNodeByIndex(Int32 userIndex)
  at System.Data.DataRowCollection.get_Item(Int32 index)

ДО фактической программы запускается и работает правильно.??? (это сводит меня с ума!!) вот весь мой соответствующий код

код ниже взят из моей реальной формы, как вы можете видеть, я использую update_combobox(); в разделе initalizeComponent, чтобы получить
это заполнить при запуске

        namespace DB_Program
       {
           public partial class Form1 : Form
           {

                DataClass dc = new DataClass();

                public Form1()
                {
                    Thread t = new Thread(new ThreadStart(SplashScreen));
                    t.Start();
                    Thread.Sleep(5000);
                    InitializeComponent();
                    t.Abort();
                    update_ComboBox();            
                  }

вот мой код из моей формы, который делает возможным

     private void update_ComboBox()
    {
        DataSet pList = dc.PListPop();

        cboBoxPList.DataSource = pList.Tables[0];
        cboBoxPList.DisplayMember = "PName";
        cboBoxPList.ValueMember = "PName";

        DataSet devList = dl.DevListPop();

        cboBoxDev.DataSource = devList.Tables[0];
        cboBoxDev.DisplayMember = "LName";
        cboBoxDev.ValueMember = "LName";

    }


         public String getDate(String pName)
        {
            String date = null;
            DataTable dTable = new DataTable();

            try
            {
                conn.Open();
                SqlDataAdapter sda = new SqlDataAdapter("SelPro", conn);
                sda.SelectCommand.CommandType = CommandType.StoredProcedure;
                sda.SelectCommand.Parameters.Add("@PName", SqlDbType.VarChar).Value = pName;
                sda.Fill(dTable);
                date = dTable.Rows[0]["StartDate"].ToString();

            }
            catch (Exception GSD)
            {

                string a = GSD.StackTrace.ToString();
                MessageBox.Show(GSD.ToString());
            }
            finally
            {
                if (conn != null)
                {
                    conn.Close();
                }
            }

            return date;
        }

согласно моим сообщениям это строки, которые генерируют сообщения, первое сообщение относится к коду непосредственно над

         date = dTable.Rows[0]["StartDate"].ToString();
         date = dTable.Rows[0]["PlannedEndDate"].ToString();
         FirstName = dTable.Rows[0]["FirstName"].ToString();
         Spec = dTable.Rows[0]["Specialty"].ToString();
         PID = (int) dTable.Rows[0]["PID"];

ПОЖАЛУЙСТА, ПОЖАЛУЙСТА, ПОЖАЛУЙСТА, кто-нибудь положит конец моему разочаровывающему кошмару! мне нужно, чтобы программа оставалась и работала точно так, как есть, все, что я пытаюсь сделать, - это все, что мне нужно, чтобы программа работала БЕЗ выдачи мне этих сообщений

еще раз спасибо!

1 ответ

Решение

Все хорошо, пожалуйста, проигнорируйте этот вопрос, так как мне удалось решить его самостоятельно!

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

Другие вопросы по тегам