WPF C#,如何将数据从数据网格添加到数据库
Posted
技术标签:
【中文标题】WPF C#,如何将数据从数据网格添加到数据库【英文标题】:WPF C#, How to add data from a datagrid to database 【发布时间】:2013-10-30 11:09:28 【问题描述】:我创建了一个应用程序,其中有一个数据网格。我用通过文本框输入的值填充了我的数据网格。
现在我需要将这些值添加到我的数据库中。如何做到这一点。
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# 代码。
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
如何将输入到数据网格中的值添加到我的数据库中。
【问题讨论】:
参考此链接可能对您有所帮助。 [链接](***.com/questions/17349535/…) 【参考方案1】:将DataTable中的每个产品添加为DataRow,然后只需使用mysql方法将这个DataTable添加到数据库中,这真的很容易,你甚至不必使用列表。
【讨论】:
如何从datagrid获取每个产品?你能给我一个演示吗? 我现在有点忙,但是看看这个链接,如果你还是不明白,我今天晚些时候给你举个例子:***.com/questions/15686381/…跨度> 【参考方案2】:试试这个:
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();
【讨论】:
我试过 b4,但 datagrid 不包含行的定义。 还有其他方法吗? 然后将datasource表绑定到datagrid foreach(DataGrid1.Items 中的 DataGridItem 行)以上是关于WPF C#,如何将数据从数据网格添加到数据库的主要内容,如果未能解决你的问题,请参考以下文章