首页 > 解决方案 > 如何将变量中的数字插入到sql数据库中?

问题描述

我想做一个函数,它将生成带有 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();


    }

标签: c#mysqlsqldatabaseinsert

解决方案


我建议您使用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();
}

推荐阅读