C# 将datagridview保存到mysql

C# 将datagridview保存到mysql,c#,mysql,datagridview,C#,Mysql,Datagridview,我有一个datagridview,我想保存到mysql数据库中。 我可以插入第一行,但在那之后它会给我一个错误 “MySql.Data.MySqlCliente.MySqlException (0x80004005):参数'@cod'已定义)…” 试试看 { string config=“server=localhost;userid=root;database=dbName”; MySqlConnection con=新的MySqlConnection(配置); string query=“插

我有一个datagridview,我想保存到mysql数据库中。
我可以插入第一行,但在那之后它会给我一个错误

“MySql.Data.MySqlCliente.MySqlException (0x80004005):参数'@cod'已定义)…”

试试看
{
string config=“server=localhost;userid=root;database=dbName”;
MySqlConnection con=新的MySqlConnection(配置);
string query=“插入infoplu(cod、sec、fam、nr)值(@cod、@sec、@fam、@nr)”;
MySqlCommand cmd=新的MySqlCommand(查询,con);
con.Open();
对于(int row=0;row
有人能理解这个错误吗? 谢谢

这应该是你需要的。该错误是由于添加了已存在的参数而导致的


在添加参数之前调用此函数

,因为
for
语句中的每个循环都会尝试添加与添加到
MySqlCommand
中的参数完全相同的参数

或者,您可能需要使用以下方法清除参数:

for (int row = 0; row < dgExcelData.Rows.Count; row++)
{                   
   cmd.Parameters.AddWithValue("@cod", dgExcelData.Rows[row].Cells[0].Value.ToString());
   cmd.Parameters.AddWithValue("@sec", dgExcelData.Rows[row].Cells[1].Value.ToString());
   cmd.Parameters.AddWithValue("@fam", dgExcelData.Rows[row].Cells[2].Value.ToString());
   cmd.Parameters.AddWithValue("@nr", dgExcelData.Rows[row].Cells[6].Value.ToString());

   cmd.ExecuteNonQuery();
   cmd.Parameters.Clear();
   MessageBox.Show("sucess");
}

这是另一种方法,我想知道它是否更有用efficient@CodeBlend我不知道。我从不测量它。事实上,我不在乎。使用
Clear()。
cmd.Parameters.Clear()
for (int row = 0; row < dgExcelData.Rows.Count; row++)
{                   
   cmd.Parameters.AddWithValue("@cod", dgExcelData.Rows[row].Cells[0].Value.ToString());
   cmd.Parameters.AddWithValue("@sec", dgExcelData.Rows[row].Cells[1].Value.ToString());
   cmd.Parameters.AddWithValue("@fam", dgExcelData.Rows[row].Cells[2].Value.ToString());
   cmd.Parameters.AddWithValue("@nr", dgExcelData.Rows[row].Cells[6].Value.ToString());

   cmd.ExecuteNonQuery();
   cmd.Parameters.Clear();
   MessageBox.Show("sucess");
}
for (int row = 0; row < dgExcelData.Rows.Count; row++)
{  
   MySqlCommand cmd = new MySqlCommand(query, con);                  
   cmd.Parameters.AddWithValue("@cod", dgExcelData.Rows[row].Cells[0].Value.ToString());
   cmd.Parameters.AddWithValue("@sec", dgExcelData.Rows[row].Cells[1].Value.ToString());
   cmd.Parameters.AddWithValue("@fam", dgExcelData.Rows[row].Cells[2].Value.ToString());
   cmd.Parameters.AddWithValue("@nr", dgExcelData.Rows[row].Cells[6].Value.ToString());

   cmd.ExecuteNonQuery();
   MessageBox.Show("sucess");
}