将值从DataGridView插入到mysql表中

时间:2013-07-17 07:31:25

标签: c# asp.net

我尝试过多次但没有得到正确的结果 我有一个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循环时,我不知道什么是错的。

0 个答案:

没有答案