1

I have created an application where i have a datagrid. I populated my datagrid with values entered throught textbox.

Now i need to add these values to my database. How can this be done.

XAML

                <DataGrid ItemsSource="{Binding Products}" x:Name="dgrdBilling" MinColumnWidth="100" Grid.Row="1" CanUserReorderColumns="False" AutoGenerateColumns="False" SelectionMode="Single" SelectionUnit="Cell" Margin="1,0,-1,0" Background="LightGray" RowBackground="LightYellow" AlternatingRowBackground="LightBlue" BorderBrush="Gray" BorderThickness="5" CanUserSortColumns="False">
                    <DataGrid.Columns>
                        <DataGridTextColumn Header="#" Width="25" CanUserResize="False" MinWidth="25" Binding="{Binding ID}"/>
                        <DataGridTextColumn Header="Name" Binding="{Binding ProductName}"/>
                        <DataGridTextColumn Header="Code" Binding="{Binding ProductCode}"/>
                        <DataGridTextColumn Header="Quantity" Binding="{Binding Quantity}"/>
                        <DataGridTextColumn Header="Price" Binding="{Binding Price}"/>
                        <DataGridTextColumn Header="Excise" Binding="{Binding Excise}"/>
                        <DataGridTextColumn Header="Edu. Cess" Binding="{Binding EduCess}"/>
                        <DataGridTextColumn Header="VAT" Binding="{Binding Vat}"/>
                        <DataGridTextColumn Header="Total" Binding="{Binding Total}"/>
                    </DataGrid.Columns>
                </DataGrid>

C# Code to update datagrid.

    private void LoadCollectionData(int count)
    {
        count = productCount;
        taxUpdate();
        SqlCeCommand com2 = new SqlCeCommand("SELECT SellingPrice FROM Products_Master WHERE ProductCode =('" + txtAutoProductCode.Text + "')", con);
        SqlCeDataReader dr2 = com2.ExecuteReader();
        while (dr2.Read())
        {
            sellingPrice = Convert.ToInt32(dr2[0]);
        }
        quantity = Convert.ToInt32(txtQuantity.Text);
        individualExcise = sellingPrice * Excise / 100;
        individualExciseTotal += individualExcise;
        individualEduCess = sellingPrice * EduCess / 100;
        individualEduCessTotal += individualEduCess;
        individualVat = sellingPrice * Vat / 100;
        individualVatTotal += individualVat;
        totalIndividualTax = individualExciseTotal + individualEduCessTotal + individualVatTotal;
        individualTotal = sellingPrice * quantity;
        total += individualTotal;
        gTotal = total + totalIndividualTax;
        tbkTaxExcise.Text = individualExciseTotal.ToString();
        tbkTaxEdu.Text = individualEduCessTotal.ToString();
        tbkTaxVat.Text = individualVatTotal.ToString();
        tbkTaxTotal.Text = totalIndividualTax.ToString();
        tbkTotal.Text = total.ToString();

        List<Product> Products = new List<Product>();
        Product p = new Product
        {
            ID = count,
            ProductCode = txtAutoProductCode.Text,
            ProductName = txtAutoProductName.Text,
            Quantity = Convert.ToInt32(txtQuantity.Text),
            Price = Convert.ToInt32(sellingPrice),
            Excise = individualExcise,
            EduCess = individualEduCess,
            Vat = individualVat,
            Total = individualTotal
        };
        dgrdBilling.Items.Add(p); // add a row
    }

How can i add the values entered into the datagrid to my database.

Kamal
  • 469
  • 2
  • 8
  • 19
  • refer this link it might help you. [link]( http://stackoverflow.com/questions/17349535/updating-database-using-datagrid-in-c-sharp) – Swati Oct 30 '13 at 11:17

2 Answers2

0

Add each product in a DataTable as a DataRow, then just use the MySQL methods to add this DataTable to the database, it's really easy to do it, you don't even gonna have to use the list.

Albert
  • 127
  • 2
  • 13
  • How to get each product from datagrid? can you provide me with a demo? – Kamal Oct 30 '13 at 11:47
  • I'm a little busy right now, but have a look at this link, if you still can't figure it out, I'll make you a example later today:http://stackoverflow.com/questions/15686381/wpf-iterate-through-datagrid – Albert Oct 30 '13 at 11:49
0

Try this:

        for (int i=0; i< dgrdBilling.Rows.Count-1;i++)
    {
        SqlCommand cmd = new SqlCommand("insert into Products_Master(ID,Products_Master,...) values(@ID,@Products_Master,...) ", con); //...-->Add other parametres
    cmd.Parameters.AddWithValue("@ID", dgrdBilling.Rows[i].Cells[0].Value);
        cmd.Parameters.AddWithValue("@Products_Master", dgrdBilling.Rows[i].Cells[1].Value);//do for all other parametres;
        cmd.ExecuteNonQuery();
    }
Swati
  • 147
  • 1
  • 5
  • 16