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.

1

2 Answers 2

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.

Sign up to request clarification or add additional context in comments.

2 Comments

How to get each product from datagrid? can you provide me with a demo?
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:stackoverflow.com/questions/15686381/…
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();
    }

4 Comments

i tried it b4, but datagrid does not contain definition for rows.
Is there any other ways around?
then take datasource table binded to datagrid
foreach (DataGridItem row in DataGrid1.Items) { }

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.