System.Data.SqlClient.SqlException не обработано

610
23 марта 2017, 18:11

Есть программка. При выполнении записи в базу данных вылетает ошибка:

  System.Data.SqlClient.SqlException не обработано
  Message=Истекло время ожидания. Время ожидания истекло до завершения операции или сервер не отвечает.
  Source=.Net SqlClient Data Provider
  ErrorCode=-2146232060
  Class=11
  LineNumber=0
  Number=-2
  Procedure=""
  Server=*******\********
  State=0
  StackTrace:
       в System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
       в System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
       в System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
       в System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
       в System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
       в System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
       в System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
       в System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
       в System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
       в load_vpnv.Form1.button5_Click(Object sender, EventArgs e) в d:\vs\myTest\load_vpnv\load_vpnv\Form1.cs:строка 910
       в System.Windows.Forms.Control.OnClick(EventArgs e)
       в System.Windows.Forms.Button.OnClick(EventArgs e)
       в System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
       в System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       в System.Windows.Forms.Control.WndProc(Message& m)
       в System.Windows.Forms.ButtonBase.WndProc(Message& m)
       в System.Windows.Forms.Button.WndProc(Message& m)
       в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       в System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       в System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
       в System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
       в System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       в System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       в System.Windows.Forms.Application.Run(Form mainForm)
       в load_vpnv.Program.Main() в d:\vs\myTest\load_vpnv\load_vpnv\Program.cs:строка 18
       в System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
       в System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       в Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       в System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       в System.Threading.ThreadHelper.ThreadStart()
  InnerException: 

Как решить? Я не специалист в С# и программировании в общем. Соединение с базой:

 sqlConnection1.ConnectionString = "Data Source=******\\*****;Initial Catalog=FPK_KNG_App_PROTO;Integrated Security=True;";
                sqlConnection1.Open();
                sqlConnection1.Close();
                sqlConnection2.ConnectionString = "Data Source=*****\\*****; Initial Catalog=КНГ; Integrated Security=True";
                sqlConnection2.Open();
                sqlConnection2.Close();
                label3.ForeColor = System.Drawing.Color.Green;
                label3.Text = "V Подключено к базе FPK_KNG_PROTO";
                tabControl1.Visible = true;
                groupBox1.Visible = true;
                label8.Visible = true;
                textBox1.Visible = true;
                sqlSelectCommand1.Connection = sqlConnection1;
                sqlSelectCommand1.CommandText = "select 'Заявка: '+CONVERT(nvarchar, pr_id)+' Заказ: '+proj_num as name,pr_id from pr where stat='O' order by pr_id desc";
                dataSet1.Clear();
                sqlDataAdapter1.Fill(dataSet1);
                comboBox2.DataSource = dataSet1.Tables[0];
                comboBox2.DisplayMember = "name";
                comboBox2.ValueMember = "pr_id";
                comboBox2.Text = "";

Код где происходит ошибка:

 private void button5_Click(object sender, EventArgs e)
    {
        sqlConnection1.Close();
        button5.BackColor = System.Drawing.SystemColors.Control;
        if (Convert.ToString(comboBox2.SelectedValue) != "" && comboBox4.Text != "")// проверяет поле номер заявки и  поле версионость
        {
            int i = 0, j = 0, lr = 0, lc = 0, ksl = 0, p = 0, ob = 0, kol = 0, pr = 0;
            lr = dataSet8.Tables[0].Rows.Count; // подсчет строка
            lc = dataSet8.Tables[0].Columns.Count;//подсчет колонок

            for (i = 0; i < lr; i++)
            {
                if(ksl==0)
                for (j = 0; j < lc; j++)
                    if (Convert.ToString(dataSet8.Tables[0].Rows[i][j]).Contains("Код SL"))
                    {
                        ksl = j;
                        break;
                    }
                if(kol==0)
                for (j = 0; j < lc; j++)
                    if (Convert.ToString(dataSet8.Tables[0].Rows[i][j]).Contains("на 1 изд"))
                    {
                        kol = j;
                        break;
                    }
                if(pr==0)
                for (j = 0; j < lc; j++)
                    if (Convert.ToString(dataSet8.Tables[0].Rows[i][j]).Contains("Приме") &&
                        Convert.ToString(dataSet8.Tables[0].Rows[i][j]).Contains("чание"))
                    {
                        pr = j;
                        break;
                    }
                if (ksl > 0 && kol > 0 && pr > 0)
                    break;
            }
            if (ksl > 0 && kol > 0 && pr > 0)
            {
                dataSet9.Clear();
                dataSet9.Tables.Clear();
                dataSet9.Tables.Add();
                dataSet9.Tables[0].Columns.Add();
                dataSet9.Tables[0].Columns.Add();
                dataSet9.Tables[0].Columns.Add();
                bool ss = false, g = true;
                string po = "", pri = "", k = "", obb = "", kk = "", kk2 = "";
                int pp = 0, zz = 0;
                int h = 0;
                for (i = 1; i < lr; i++)
                {
                    if (Convert.ToString(dataSet8.Tables[0].Rows[i][ksl]) != "" &&
                        Convert.ToString(dataSet8.Tables[0].Rows[i][ksl]).Length == 9)
                    {
                        ss = false;
                        dataSet9.Tables[0].Rows.Add();
                        dataSet9.Tables[0].Rows[h][0] = Convert.ToString(dataSet8.Tables[0].Rows[i][ksl]);
                        dataSet9.Tables[0].Rows[h][1] = Convert.ToString(dataSet8.Tables[0].Rows[i][kol]).Replace(".", System.Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator).Replace(",", System.Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator);
                        dataSet9.Tables[0].Rows[h][2] = Convert.ToString(dataSet8.Tables[0].Rows[i][pr]);
                        h++;
                    }
                }
                bool[] ch = new bool[dataSet9.Tables[0].Rows.Count];
                dataSet10.Clear();
                dataSet10.Tables.Clear();
                dataSet10.Tables.Add();
                dataSet10.Tables[0].Columns.Add();
                dataSet10.Tables[0].Columns.Add();
                dataSet10.Tables[0].Columns.Add();
                double m = 0;
                h = 0;
                string m1 = "";
                for (i = 0; i < dataSet9.Tables[0].Rows.Count; i++)
                {
                    if (ch[i] == false)
                    {
                        ch[i] = true;
                        if (Convert.ToString(dataSet9.Tables[0].Rows[i][1]) != "")
                            m = Convert.ToDouble(dataSet9.Tables[0].Rows[i][1]);
                        else
                            m = 0;
                        m1 = Convert.ToString(dataSet9.Tables[0].Rows[i][2]);
                        for (j = 0; j < dataSet9.Tables[0].Rows.Count; j++)
                        {
                            if (Convert.ToString(dataSet9.Tables[0].Rows[j][0]) ==
                                Convert.ToString(dataSet9.Tables[0].Rows[i][0]) && ch[j] == false)
                            {
                                if (Convert.ToString(dataSet9.Tables[0].Rows[j][1]) != "")
                                    m += Convert.ToDouble(dataSet9.Tables[0].Rows[j][1]);
                                m1 += " " + Convert.ToString(dataSet9.Tables[0].Rows[i][2]);
                                ch[j] = true;
                            }
                        }
                        dataSet10.Tables[0].Rows.Add();
                        dataSet10.Tables[0].Rows[h][0] = dataSet9.Tables[0].Rows[i][0];
                        dataSet10.Tables[0].Rows[h][1] = m;
                        dataSet10.Tables[0].Rows[h][2] = m1;
                        h++;
                    }
                }
                bool l = true;
                sqlSelectCommand1.Connection = sqlConnection1;
                sqlInsertCommand1.Connection = sqlConnection1;
                for (i = 0; i < dataSet10.Tables[0].Rows.Count; i++)
                {
                    dataSet6.Clear();
                    dataSet6.Tables.Clear();
                    l = true;
                    sqlSelectCommand1.CommandText = "select 1 from item where item='" + Convert.ToString(dataSet10.Tables[0].Rows[i][0]) + "'";
                    sqlDataAdapter1.Fill(dataSet6);
                    if (dataSet6.Tables[0].Rows.Count == 0)
                    {
                        l = false;
                        MessageBox.Show("Обработка данных остановлена, т.к. кода " + Convert.ToString(dataSet10.Tables[0].Rows[i][0]) + " нет в SL(код скопирован в буфер обмена).");
                        Clipboard.SetText(Convert.ToString(dataSet10.Tables[0].Rows[i][0]));
                        break;
                    }
                }
                if (l)
                {
                    dataSet6.Clear();
                    dataSet6.Tables.Clear();
                    l = true;
                    int r = 0;
                    sqlSelectCommand1.CommandText = "select isnull(max(prline_id),0) from prline where type='nv' and pr_id='" + Convert.ToString(comboBox2.SelectedValue) + "' and ver='" + comboBox4.Text + "'";
                    sqlDataAdapter1.Fill(dataSet6);
                    if (Convert.ToString(dataSet6.Tables[0].Rows[0][0]) != "0")
                    {
                        r = Convert.ToInt32(dataSet6.Tables[0].Rows[0][0]) + 1;
                    }
                    else
                        r = 1;
                    sqlInsertCommand1.Parameters.Clear();
                    sqlSelectCommand1.Parameters.Clear();
                    sqlDeleteCommand1.Parameters.Clear();
                    sqlInsertCommand1.CommandText = "insert into prline (prline_id,ver,pr_id,type,item,qty,note,name)" +
                          " values (@prline_id,@ver,@pr_id,@type,@item,@qty,@note,@name)";
                    sqlInsertCommand1.Parameters.Add("@prline_id", System.Data.SqlDbType.Int);
                    sqlInsertCommand1.Parameters.Add("@ver", System.Data.SqlDbType.Int);
                    sqlInsertCommand1.Parameters.Add("@pr_id", System.Data.SqlDbType.Int);
                    sqlInsertCommand1.Parameters.Add("@type", System.Data.SqlDbType.NVarChar);
                    sqlInsertCommand1.Parameters.Add("@item", System.Data.SqlDbType.NVarChar);
                    sqlInsertCommand1.Parameters.Add("@qty", System.Data.SqlDbType.Decimal);
                    sqlInsertCommand1.Parameters.Add("@note", System.Data.SqlDbType.NVarChar);
                    sqlInsertCommand1.Parameters.Add("@name", System.Data.SqlDbType.NVarChar);
                    sqlConnection1.Open();
                    for (i = 0; i < dataSet10.Tables[0].Rows.Count; i++)
                    {
                        sqlInsertCommand1.Parameters["@prline_id"].Value = r;
                        sqlInsertCommand1.Parameters["@ver"].Value = comboBox4.Text;
                        sqlInsertCommand1.Parameters["@pr_id"].Value = Convert.ToString(comboBox2.SelectedValue);
                        sqlInsertCommand1.Parameters["@type"].Value = "nv";
                        sqlInsertCommand1.Parameters["@item"].Value = Convert.ToString(dataSet10.Tables[0].Rows[i][0]);
                        sqlInsertCommand1.Parameters["@qty"].Value = Convert.ToDouble(dataSet10.Tables[0].Rows[i][1]);
                        sqlInsertCommand1.Parameters["@note"].Value = Convert.ToString(dataSet10.Tables[0].Rows[i][2]);
                        sqlInsertCommand1.Parameters["@name"].Value = nvf;
                        sqlInsertCommand1.ExecuteNonQuery(); //на этом месте выскакивает  ошибкой
                        r++;
                    }
                    sqlConnection1.Close();
                    MessageBox.Show("Данные успешно загружены");
                    button5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
                }
                //dataGridView1.DataSource = dataSet5.Tables[0];   
            }
        }
        else
        {
            MessageBox.Show("Необходимо выбрать заявку и указать версию");
        }

    }

READ ALSO
Отследить какая кнопка была нажата, если кнопки создаются программно

Отследить какая кнопка была нажата, если кнопки создаются программно

Здравствуйте, программно создаю на форме кнопки в зависимости от того, сколько записей существует в базе данных по заданному запросуПодскажите,...

383
Как определить на каком индексе (длине) находится символ?

Как определить на каком индексе (длине) находится символ?

Как определить на какой длине находится нужная мне строка от пользователя? Например, чтобы пользователь ввёл My name is AlexКак мне определить...

316
Как прочитать данные с сетевого диска либо по локальному пути MVC

Как прочитать данные с сетевого диска либо по локальному пути MVC

Пишу маленький проект с подключением файла с сетевого диска, при публикации на локальном ПК получаю исключение

535
Как подключить proxy в C#

Как подключить proxy в C#

Возник такой вопрос, как подключить прокси к авторизации в Вконтакте на 10 аккаунтов и болееКак сделать под один аккаунт я знаю как, но как...

332