1

我尝试了很多案例,但没有得到正确的结果。
我有一个 DataGridView 和 Button,

我有一个包含 5 列的表,在我的 windows 应用程序中,我将给出 3 个列值和 2 个列值,我想从 datagridview 获取并插入到 mysql 表中。

在运行时,当我单击按钮时,我将向 datagridview 插入值,我想将所有值从 datagridview 获取到字符串或字符串数​​组。然后我将插入到 mysql 表中

con = new MySqlConnection(str);
        try
        {
            con.Open();
            MySqlCommand cmd = con.CreateCommand();
            //cmd.CommandText = "insert into balance values" + "(@i1,@i2,@i3,@i4,@i5)";
            //cmd.Parameters.Add("@i1", MySqlDbType.VarChar);
            //cmd.Parameters.Add("@i2", MySqlDbType.VarChar);
            //cmd.Parameters.Add("@i3", MySqlDbType.VarChar);
            //cmd.Parameters.Add("@i4", MySqlDbType.Float);
            //cmd.Parameters.Add("@i5", MySqlDbType.VarChar);
            //cmd.Parameters["@i1"].Value = busname;
            //cmd.Parameters["@i2"].Value = cusname;
            //cmd.Parameters["@i3"].Value = this.dataGridView1[0, 0].Value;
            //cmd.Parameters["@i4"].Value = this.dataGridView1[1, 0].Value;
            //cmd.Parameters["@i5"].Value = "345";
            //cmd.ExecuteNonQuery();
            string[] st = new string[this.dataGridView1.Rows.Count];

            for (int i = 0; i <= this.dataGridView1.Rows.Count; i++)
            {                    
                cmd.CommandText = "insert into balance values" + "(@p1,@p2,@p3,@p4,@p5)";
                cmd.Parameters.Add("@p1", MySqlDbType.VarChar);
                cmd.Parameters.Add("@p2", MySqlDbType.VarChar);
                cmd.Parameters.Add("@p3", MySqlDbType.VarChar);
                cmd.Parameters.Add("@p4", MySqlDbType.Float);
                cmd.Parameters.Add("@p5", MySqlDbType.VarChar);
                cmd.Parameters["@p1"].Value = busname;
                cmd.Parameters["@p2"].Value = cusname;
                cmd.Parameters["@p3"].Value = this.dataGridView1[0, i].Value;
                cmd.Parameters["@p4"].Value = this.dataGridView1[1, i].Value;
                cmd.Parameters["@p5"].Value = "345";
                cmd.ExecuteNonQuery();                     

            }

如果我在 for 循环中使用插入选项,那么我会收到错误消息

Parameter '@p1' has already been defined. same error for '@p2', '@p5' also.

我尝试不使用我评论过的 for 循环。那工作正常。它也插入到表中。但是当我使用 for 循环时,我不知道出了什么问题。

4

0 回答 0