如何在c#windows窗体中为每条记录保存DataGridView多行

时间:2016-06-14 02:56:37

标签: c# sql-server datagridview

24小时后我发现这个解决方案一无所获。

在Windows窗体c#中,我创建了一个销售系统,我可以在DataGridView中添加多个项目,一个项目仅包含价格,数量,折扣,金额的1行详细信息。 第二项详细信息与另一项目名称相同,第二行价格,数量,折扣,金额相同(请参阅屏幕截图以了解我想说的内容)

http://i.imgur.com/lHXXo6y.png

所以我想在MS SQL Server中为每个客户记录添加多行,如何保存?

我只能在第一行添加所有客户详细信息,但第二和第三行我怎么能保存这个?请参阅我的代码以在数据库中添加行

try
        {
            con = new SqlConnection(str);
            con.Open();
            for (int i = 0; i < dataGridView2.Rows.Count; i++)
            {
                SqlCommand sc = new SqlCommand("Sales_Details",con);
                sc.CommandType = CommandType.StoredProcedure;
                //sc = new SqlCommand("Insert into Sales_Order(Item_Name,Quantity,Price,Amount,Discount,Total_Amount) Values (@Item_Name,@Quantity,@Price,@Amount,@Discount,@Total_Amount)", con);
                sc.Parameters.AddWithValue("@Item_Name", dataGridView2.Rows[i].Cells[0].Value);
                sc.Parameters.AddWithValue("@Quantity", dataGridView2.Rows[i].Cells[1].Value);
                sc.Parameters.AddWithValue("@Price", dataGridView2.Rows[i].Cells[2].Value);
                sc.Parameters.AddWithValue("@Amount", dataGridView2.Rows[i].Cells[3].Value);
                sc.Parameters.AddWithValue("@Discount",dataGridView2.Rows[i].Cells[4].Value);
                sc.Parameters.AddWithValue("@Total_Amount", dataGridView2.Rows[i].Cells[5].Value);

                sc.Parameters.AddWithValue("@Item_Code", textBox6.Text);
                sc.Parameters.AddWithValue("@DOS", S_Date.Text);
                sc.Parameters.AddWithValue("@Customer_Name", S_CustName.Text);
                sc.Parameters.AddWithValue("@Paid", textBox3.Text);
                sc.Parameters.AddWithValue("@R_Balance", textBox4.Text);
                sc.Parameters.AddWithValue("@Tot_Qty", textBox5.Text);

                sc.ExecuteNonQuery();
                MessageBox.Show("Record Successfully Saved");
                S_Clear();
            }

            dataGridView2.Rows.Clear();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }

我正在保存行和其他详细信息

抱歉我的英语不好。

0 个答案:

没有答案