Member 13403292 Ответов: 3

Почему ошибка в операторе break...плз скажите быстро


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Configuration;

namespace WindowsFormsApplication8
{
    public partial class Form1 : Form
    {
        SqlConnection conn = new SqlConnection(@"Data Source=VISHAL-PC; Initial Catalog=arif; Integrated security=true");
        SqlCommand cmd;
        SqlDataReader dr;
        string str;
        int value1;
        int value2;
        int A;

        public Form1()
        {
            InitializeComponent();
        }
            
                          

        private void Form1_Load(object sender, EventArgs e)
        {
           


        }

        private void textBox3_TextChanged(object sender, EventArgs e)
        {

        }
     

      

        private void timer1_Tick_1(object sender, EventArgs e)
        {

            
            

            
        }

      

        private void timer1_Tick_2(object sender, EventArgs e)
        {
            {
                if (textBox1.Text != "" && textBox2.Text != "")
                {

                    value1 = Convert.ToInt32(textBox1.Text);
                    value2 = Convert.ToInt32(textBox2.Text);
                    
                    textBox3.Text = DateTime.Now.ToString();
                    str = "";
                    str = "Insert into kkk values(" + textBox1.Text + "," + textBox2.Text + ",'" + textBox3.Text + "')";
                    cmd = new SqlCommand(str, conn);
                    conn.Open();
                    dr = cmd.ExecuteReader();

                    value1 = value1 + 1;
                    value2 = value2 + 1;
                    textBox1.Text = value1.ToString();
                    textBox2.Text = value2.ToString();
                    conn.Close();

                }

                else 
                {
                    break;
                    
                }
            }
        }
          
                
        } 
}


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

подскажите сайт faast, насколько это возможно..........................

3 Ответов

Рейтинг:
2

H M Mori

Вы не можете использовать Break с оператором if-else, он используется для циклирования и переключения.


Cristian Mayo

Сэр Мори прав. Оператор Break используется для завершения циклов, если было выполнено заданное условие.

В ваш код, вы можете также удалить еще на событие таймера. Таймер-это, в некотором смысле, тоже цикл, потому что каждый тик он будет вызывать ваше событие. Если условие " если "в вашем тиковом событии таймера не будет выполнено, оно завершит тиковое событие, достигнув вашей цели сломать событие, закодированное в условии" иначе".

^_^

[no name]

Да. Кристиан Майо.

Рейтинг:
2

Patrice T

str = "Insert into kkk values(" + textBox1.Text + "," + textBox2.Text + ",'" + textBox3.Text + "')";

Не решение вашего вопроса, а еще одна проблема, которая у вас есть.
Никогда не создавайте SQL-запрос путем объединения строк. Рано или поздно вы сделаете это с помощью пользовательских вводов, и это откроет дверь уязвимости под названием "SQL injection", она опасна для вашей базы данных и подвержена ошибкам.
Одна кавычка в имени - и ваша программа рухнет. Если пользователь вводит имя типа "Брайан О'Коннер", это может привести к сбою вашего приложения, это уязвимость SQL-инъекции, и сбой-это наименьшая из проблем, вредоносный пользовательский ввод, и он продвигается к командам SQL со всеми учетными данными.
SQL-инъекция-Википедия[^]
SQL-инъекция[^]
Атаки SQL-инъекций на примере[^]
PHP: SQL Injection-руководство пользователя[^]
Шпаргалка по предотвращению инъекций SQL-OWASP[^]


Рейтинг:
0

OriginalGriff

У тебя нет петли, нет switch - так что здесь нечего делать. break делать.

break работает одним из двух способов:
1) внутри петли (for, foreach, while, или do) этот break оператор немедленно выходит из текущего цикла - и только текущего, он не выйдет из внешнего цикла вложенной пары:

foreach (string s in myList)
   {
   foreach (char c in s)
      {
      if (c == "x")
         {
         break;
         }
      ...
      }
  // Executed immediately after the break, or when the string runs out of characters
  ...
  }

2) при использовании внутри case блок а switch заявление, оно выходит из switch немедленно. case блоки должны заканчиваться на break, return, или throw

Им нечего делать в городе. if...else оператор, таким образом, вы получаете ошибку компиляции.


[no name]

как выйти из обоих циклов, если мы хотим? Возможно ли это по этикетке?

OriginalGriff

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

[no name]

Попался сэр

OriginalGriff

:большой палец вверх:

[no name]

да ура я это сделал :громко смеюсь