Как вставить номер из переменной в базу данных SQL? - PullRequest
0 голосов
/ 25 апреля 2018

Я хотел бы сделать функцию, которая будет генерировать лотерейный билет с 6 случайными числами и позже вставлять в базу данных. Если я пишу числа, такие как 2, 10, 23 ... и т. Д., Все в порядке и запрос выполняется, но если я пишу переменную имени, например, lotto [0], lotto [1] ... программа выдаст ошибку. Спасибо за вашу помощь.

    private void button1_Click(object sender, EventArgs e)
    {
        int check = 0;
        int[] lotto = new int[6];
        Random rand = new Random();
        for (int i = 0; i < lotto.Length;)
        {
            check = rand.Next(1, 49);
            if (!lotto.Contains(check))
            {
                lotto[i] = check;
                i++;
            }
        }


        string insertQuery = "INSERT INTO kupony VALUES(NULL, 1, lotto[0], lotto[1], lotto[2], lotto[3], lotto[4], lotto[5], -1, '2018-04-25', -1)";
        connection.Open();
        MySqlCommand command = new MySqlCommand(insertQuery, connection);
        try
        {
            if (command.ExecuteNonQuery() == 1)
            {
                //MessageBox.Show("Data Inserted");
            }
            else
            {
                //MessageBox.Show("Data Not Inserted");
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }


        connection.Close();


    }

1 Ответ

0 голосов
/ 25 апреля 2018

Я рекомендую вам использовать Parameters команды SQL, как показано ниже:

string query = "INSERT INTO test_table (column1, column2) VALUES (?column1,?column2);";
cn.Open();
using (MySqlCommand cmd = new MySqlCommand(query, cn))
{
    cmd.Parameters.Add("?column1", MySqlDbType.Int32).Value = 123;
    cmd.Parameters.Add("?column2", MySqlDbType.VarChar).Value = "Test";
    cmd.ExecuteNonQuery();
}
...