Member 9983063 Ответов: 1

Моя форма становится все заморозить и закрыть на выполнение


Здравствуйте, ребята, я столкнулся с другой проблемой, которая заключается в том, что
my form getting freeze and close  on onload please check my code and suggest me the solution 
Thanks in advance

What I have tried:

<pre>con_string.ConnectionString = @"Provider = Microsoft.ACE.OLEDB.12.0;Data Source =|DataDirectory|\Restaurant.accdb;Persist Security Info=False";
            con_string.Open();
            DataSet dsa2 = new DataSet();
            DataTable dt2 = new DataTable();
            dsa2.Tables.Add(dt2);
            OleDbDataAdapter da2 = new OleDbDataAdapter();
            da2 = new OleDbDataAdapter(@"SELECT column2," +
"Sum(MediumVal) As [Dine In] " +
                "Sum(LargeVal) As [Deliery], " +
                "Sum(RoyalVal) As [Take Away], " +
"From ( " +
"SELECT " +
"column2 As [column2]" +
",Switch(column3 like 'DineIn%', 1,True,0) As [MediumVal] " +
                ",Switch(column3 like 'Delivery%',1,True,0) As [LargeVal], " +
                ",Switch(column3 like 'TakeAway%', 1,True,0) As [RoyalVal] " +
                                    " FROM Total " + " Where [Date] between #" + System.DateTime.Now.ToString("MM/dd/yyyy") + "# AND #" + System.DateTime.Now.AddDays(1).ToString("MM/dd/yyyy") + "# ", con_string);
            MessageBox.Show(@"SELECT column2," +
"Sum(MediumVal) As [Dine In] " +
                "Sum(LargeVal) As [Deliery], " +
                "Sum(RoyalVal) As [Take Away], " +
"From ( " +
"SELECT " +
"column2 As [column2]" +
",Switch(column3 like 'DineIn%', 1,True,0) As [MediumVal] " +
                ",Switch(column3 like 'Delivery%',1,True,0) As [LargeVal], " +
                ",Switch(column3 like 'TakeAway%', 1,True,0) As [RoyalVal] " +
                                    " FROM Total " + " Where [Date] between #" + System.DateTime.Now.ToString("MM/dd/yyyy") + "# AND #" + System.DateTime.Now.AddDays(1).ToString("MM/dd/yyyy") + "#");
            da2.Fill(dt2);
            dataGridView1.DataSource = dt2;
            con_string.Close();
            dataGridView1.Columns[0].Width = 286;
            dataGridView1.Columns[1].Width = 180;
            dataGridView1.Columns[2].Width = 180;
            dataGridView1.Columns[3].Width = 180;
            dataGridView1.Columns[4].Width = 180;
            dataGridView1.Columns[5].Width = 180;
            int sum = 0;
            for (int i = 0; i < dataGridView1.Rows.Count; ++i)
            {
                sum += Convert.ToInt32(dataGridView1.Rows[i].Cells[1].Value);
            sum += Convert.ToInt32(dataGridView1.Rows[i].Cells[2].Value) + Convert.ToInt32(dataGridView1.Rows[i].Cells[3].Value);
            dataGridView1.Rows[i].Cells[0].Value = sum;
                sum = 0;
            }
            MessageBox.Show(y);
            
for (int i = 1; ei < dataGridView1.Columns.Count; i++)
{
                double sum = 0;
                for (int j = 0; j < dataGridView1.Rows.Count; j++)
                {
                    sum += Convert.ToDouble(dataGridView1.Rows[[j],[i]]);
                }
                dataGridView1.Rows[dataGridView1.Rows.Count].Cells[i].Value = sum.ToString();
            }
            dataGridView1.Columns[4].Width = 180;

cvogt61457

Вы не даете нам никакой информации, чтобы определить, в чем проблема.

Нам нужно больше кода.
Где он замерзает?

Запустите отладчик и посмотрите, на какой строке происходит замораживание выполнения.

Member 9983063

здесь я получаю ошибку da2.Fill(dt2);

Peter_in_2780

Я готов поспорить, что у вас есть опечатка где-то в этой огромной строке запроса.

CHill60

Виртуальная 5
(Я не принимаю Пари)

CHill60

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

Member 9983063

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

Karthik_Mahalingam

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

Member 9983063

братан можешь ли ты преобразовать этот код в параметризованный код пожалуйста

1 Ответов

Рейтинг:
1

Patrice T

Уже 92 вопроса А вы все еще не знаете основ отладки

da2 = new OleDbDataAdapter(@"SELECT column2," +
"Sum(MediumVal) As [Dine In] " +
"Sum(LargeVal) As [Deliery], " +
"Sum(RoyalVal) As [Take Away], " +
"From ( " +
"SELECT " +
"column2 As [column2]" +
",Switch(column3 like 'DineIn%', 1,True,0) As [MediumVal] " +
",Switch(column3 like 'Delivery%',1,True,0) As [LargeVal], " +
",Switch(column3 like 'TakeAway%', 1,True,0) As [RoyalVal] " +
" FROM Total " + " Where [Date] between #" + System.DateTime.Now.ToString("MM/dd/yyyy") + "# AND #" + System.DateTime.Now.AddDays(1).ToString("MM/dd/yyyy") + "# ", con_string);

Вы строите запрос из 16 строк, он не работает, и вы даже не проверяете, является ли результирующая строка правильным SQL-запросом.
Первое, что нужно сделать: сохранить запрос в переменной и проверить синтаксис, обратите особое внимание на неуместные запятые.


Member 9983063

братан, я все еще сталкиваюсь с той же проблемой, даже с вашим кодом тоже здесь
Да2.Заполнить(ст2);

Patrice T

это ваш код!
прочтите последнее предложение.