Есть программка. При выполнении записи в базу данных вылетает ошибка:
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("Необходимо выбрать заявку и указать версию");
}
}
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости