Как обновить элементы из datagridview в c # - PullRequest
0 голосов
/ 11 ноября 2018

Я хочу обновить счет-фактуру, и в счете-фактуре есть несколько элементов. Я получаю элементы счета-фактуры из базы данных в DataGridView Теперь пользователь может удалять элементы и добавлять элементы, а пользователь нажимает кнопку обновления, чтобы обновить счет-фактуру в базе данных.

Мой код:

try
        {
            using (SQLiteConnection con = new SQLiteConnection(AppSettings.ConnectionString()))
            {
                con.Open();
                for (int j = 0; j < dgv.Rows.Count; j++)
                {
                    using (SQLiteCommand sc = new SQLiteCommand("Update Orders Set [Order_No] = @Order_No,[Order_Type] = @Order_Type,[Order_Date] = @Order_Date,[Customer_Name] = @Customer_Name,[Contact] = @Contact,[Adress] = @Adress,[Delivery_Address] = @Delivery_Address,[Rider] = @Rider,[Items] = @Items,[Price] = @Price,[Qty] = @Qty,[Item_Total] = @Item_Total,[Item_Cat] = @Item_Cat,[SubTotal] = @SubTotal,[Discount] = @Discount,[Total_Amount] = @Total_Amount,[Paid_Amount] = @Paid_Amount,[Change_Due] = @Change_Due,[Delivery_Charges] = @Delivery_Charges Where Order_No = '" + Order_No.Text + "' ", con))
                    {
                        sc.Parameters.AddWithValue("@Order_No", Order_No.Text);
                        sc.Parameters.AddWithValue("@Order_Type", Order_Type.Text);
                        sc.Parameters.AddWithValue("@Order_Date", Order_Date.Text);
                        sc.Parameters.AddWithValue("@Customer_Name", Customer_Name.Text);
                        sc.Parameters.AddWithValue("@Contact", Contact.Text);
                        sc.Parameters.AddWithValue("@Adress", Address.Text);
                        sc.Parameters.AddWithValue("@Delivery_Address", Delivery_Address.Text);
                        sc.Parameters.AddWithValue("@Rider", "");
                        sc.Parameters.AddWithValue("@Items", dgv.Rows[j].Cells[1].Value);
                        sc.Parameters.AddWithValue("@Price", dgv.Rows[j].Cells[2].Value);
                        sc.Parameters.AddWithValue("@Qty", dgv.Rows[j].Cells[3].Value);
                        sc.Parameters.AddWithValue("@Item_Total", dgv.Rows[j].Cells[4].Value);
                        sc.Parameters.AddWithValue("@Item_Cat", dgv.Rows[j].Cells[5].Value);
                        sc.Parameters.AddWithValue("@SubTotal", SubTotal.Text);
                        sc.Parameters.AddWithValue("@Discount", Discount.Text);
                        sc.Parameters.AddWithValue("@Total_Amount", Total_Amount.Text);
                        sc.Parameters.AddWithValue("@Paid_Amount", Paid_Amount.Text);
                        sc.Parameters.AddWithValue("@Change_Due", Change_Due.Text);
                        sc.Parameters.AddWithValue("@Delivery_Charges", Del_Charges.Text);
                        sc.ExecuteNonQuery();
                    }
                }

                SuccessBox sb = new SuccessBox();
                sb.lbl_Change.Text = Change_Due.Text;
                sb.label1.Text = "Successfully Updated";
                sb.ShowDialog();
                con.Close();
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }

если я добавлю новый элемент и нажму кнопку обновления, чтобы этот запрос заменил все мои старые элементы новым.

Предположим, я добавляю Samsung S8, чтобы он заменил мои старые элементы на Samsung S8.

И результат:

Samsung S8   1   $750
Samsung S8   1   $750
Samsung S8   1   $750
Samsung S8   1   $750

Есть ли способ сделать это?

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

Это сделает вставку, обновление и удаление для вас через объект DataGrid.

using System;  
using System.Data;  
using System.Windows.Forms;  
using System.Data.SqlClient;  

namespace InsertUpdateDeleteDemo  
{  
    public partial class frmMain : Form  
    {  
        SqlConnection con= new SqlConnection("Data Source=.;Initial Catalog=Sample;Integrated Security=true;");  
        SqlCommand cmd;  
        SqlDataAdapter adapt;  
        //ID variable used in Updating and Deleting Record  
        int ID = 0;  
        public frmMain()  
        {  
            InitializeComponent();  
            DisplayData();  
        }  
        //Insert Data  
        private void btn_Insert_Click(object sender, EventArgs e)  
        {  
            if (txt_Name.Text != "" && txt_State.Text != "")  
            {  
                cmd = new SqlCommand("insert into tbl_Record(Name,State) values(@name,@state)", con);  
                con.Open();  
                cmd.Parameters.AddWithValue("@name", txt_Name.Text);  
                cmd.Parameters.AddWithValue("@state", txt_State.Text);  
                cmd.ExecuteNonQuery();  
                con.Close();  
                MessageBox.Show("Record Inserted Successfully");  
                DisplayData();  
                ClearData();  
            }  
            else  
            {  
                MessageBox.Show("Please Provide Details!");  
            }  
        }  
        //Display Data in DataGridView  
        private void DisplayData()  
        {  
            con.Open();  
            DataTable dt=new DataTable();  
            adapt=new SqlDataAdapter("select * from tbl_Record",con);  
            adapt.Fill(dt);  
            dataGridView1.DataSource = dt;  
            con.Close();  
        }  
        //Clear Data  
        private void ClearData()  
        {  
            txt_Name.Text = "";  
            txt_State.Text = "";  
            ID = 0;  
        }  
        //dataGridView1 RowHeaderMouseClick Event  
        private void dataGridView1_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)  
        {  
            ID = Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString());  
            txt_Name.Text = dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString();  
            txt_State.Text = dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString();  
        }  
        //Update Record  
        private void btn_Update_Click(object sender, EventArgs e)  
        {  
            if (txt_Name.Text != "" && txt_State.Text != "")  
            {  
                cmd = new SqlCommand("update tbl_Record set Name=@name,State=@state where ID=@id", con);  
                con.Open();  
                cmd.Parameters.AddWithValue("@id", ID);  
                cmd.Parameters.AddWithValue("@name", txt_Name.Text);  
                cmd.Parameters.AddWithValue("@state", txt_State.Text);  
                cmd.ExecuteNonQuery();  
                MessageBox.Show("Record Updated Successfully");  
                con.Close();  
                DisplayData();  
                ClearData();  
            }  
            else  
            {  
                MessageBox.Show("Please Select Record to Update");  
            }  
        }  
        //Delete Record  
        private void btn_Delete_Click(object sender, EventArgs e)  
        {  
            if(ID!=0)  
            {  
                cmd = new SqlCommand("delete tbl_Record where ID=@id",con);  
                con.Open();  
                cmd.Parameters.AddWithValue("@id",ID);  
                cmd.ExecuteNonQuery();  
                con.Close();  
                MessageBox.Show("Record Deleted Successfully!");  
                DisplayData();  
                ClearData();  
            }  
            else  
            {  
                MessageBox.Show("Please Select Record to Delete");  
            }  
        }  
    }  
} 
0 голосов
/ 11 ноября 2018

Вы должны установить параметр OrderID для обновления желаемого элемента

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...