我尝试过多次但没有得到正确的结果 我有一个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循环中使用insert选项,那么我收到错误
Parameter '@p1' has already been defined. same error for '@p2', '@p5' also.
我试过没有使用for循环,我评论过。这工作正常。它也插入表中。但是当我使用for循环时,我不知道什么是错的。