通过单击创建多个mysql插入(库存系统)

dgenwo3n  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(256)

我正在建立一个库存系统。基本上,用户将输入一个接收数量,系统将为每个单位生成一个单独的库存编号。到目前为止,我已经创建了两个表。一个用于主库存信息,另一个用于与主库存信息相关的单个库存项目。我在如何根据用户在文本框中输入的数量创建单个项时遇到了一个问题。我可以插入主要库存信息的数据,但如何为单个项目创建条目?这是输入主要股票信息的代码。我确实需要一些帮助。谢谢。

private void button2_Click(object sender, EventArgs e)
    {
        // generate stock number button pressed
        ConnectionStringSettings conSettings = ConfigurationManager.ConnectionStrings["shopmanagerConnectionString1"];
        MySqlConnection con = new MySqlConnection(conSettings.ToString());
        MySqlCommand cmd1 = new MySqlCommand(@"insert into shopmanager.inventory (projects_project_number, inv_name, inv_description, inv_quantity, inv_date_received) values(@projects_project_number, @inv_name, @inv_description, @inv_quantity, @inv_date_received)", con);

        try
        {
            con.Open();
            cmd1.Parameters.AddWithValue("@projects_project_number", project.Text);
            cmd1.Parameters.AddWithValue("@inv_name", item_name.Text);
            cmd1.Parameters.AddWithValue("@inv_description", item_description.Text);
            cmd1.Parameters.AddWithValue("@inv_quantity", quantity_received.Text);
            cmd1.Parameters.AddWithValue("@inv_date_received", DateTime.Now);
            cmd1.ExecuteNonQuery();
            cmd1.Parameters.Clear();

        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
        con.Close();
    }
dfty9e19

dfty9e191#

从https://dev.mysql.com/doc/connector-net/en/connector-net-programming-prepared-preparing.html:
只需为每条记录再次设置参数。

MySql.Data.MySqlClient.MySqlConnection conn;
MySql.Data.MySqlClient.MySqlCommand cmd;

conn = new MySql.Data.MySqlClient.MySqlConnection();
cmd = new MySql.Data.MySqlClient.MySqlCommand();

conn.ConnectionString = strConnection;

try
{
    conn.Open();
    cmd.Connection = conn;

    cmd.CommandText = "INSERT INTO myTable VALUES(NULL, @number, @text)";
    cmd.Prepare();

    cmd.Parameters.AddWithValue("@number", 1);
    cmd.Parameters.AddWithValue("@text", "One");

    for (int i=1; i <= 1000; i++)
    {
        cmd.Parameters["@number"].Value = i;
        cmd.Parameters["@text"].Value = "A string value";

        cmd.ExecuteNonQuery();
    }
}
catch (MySql.Data.MySqlClient.MySqlException ex)
{
    MessageBox.Show("Error " + ex.Number + " has occurred: " + ex.Message,
        "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

从技术上讲你就是这么做的。然而,我怀疑为什么你会让某人输入一个数量,然后继续输入一个记录,其中你的数量本质上总是1。通常情况下,您只需使用数量来表示手头有多少商品,除非这些商品非常独特/定制。i、 e.你在商品上贴上条形码,然后扫描它,以了解你使用的是哪种特定的供应品。
否则,你只需拍打一个条形码,上面写着它是xyz的一部分,不管你得到哪一部分,因为它是xyz的一部分。
其他情况下,有多个库存行项目是机车车辆或从不同的供应商/制造商获得相同的零件(这与跟踪成本和潜在的质量控制有关)

相关问题