将数据网格选定单元格的值检索到Sql中

问题描述 投票:0回答:1

我有从 sql 查询填充的日期网格

    HPEntities db = new HPEntities();
    var queryTable4 = db.Database.SqlQuery<Lbrctn>("select * from Lbrctn");
    var u = queryTable4.ToList();
    DG_Example.ItemsSource = u;

我想获取已检查的 dataGrid 行的值。并发送到存储过程 所以我尝试这个代码:

     for (int i = 0; i < DG_Example.Items.Count - 1; i++)
                {

                    mChkBox = DG_Example.Columns[0].GetCellContent(DG_Example.Items[i]) as CheckBox;

                    if (mChkBox.IsChecked == true)
                    {
                        
                        var DaSelect = DG_Example.Columns[1].GetCellContent(DG_Example.Items[i]) as TextBlock;
                        var MNameTBk = DG_Example.Columns[2].GetCellContent(DG_Example.Items[i]) as TextBlock;
                        var ChiCodeTBk = DG_Example.Columns[3].GetCellContent(DG_Example.Items[i]) as TextBlock;
                        var ChiNameTBk = DG_Example.Columns[4].GetCellContent(DG_Example.Items[i]) as TextBlock;

                        var IntenCodeTBk = DG_Example.Columns[6].GetCellContent(DG_Example.Items[i]) as TextBlock;
                        var PeDescTBk = DG_Example.Columns[7].GetCellContent(DG_Example.Items[i]) as TextBlock;
                        
                        db.sp_Ins_inten // using Stored Procedure
                            (
                            IntenCodeTBk.Text.Trim(),
                            MNameTBk.Text.Trim(),
                            Convert.ToInt32(chiCodeTBk.Text.Trim()),
                            ChiNameTBk.Text.Trim(),
                            PeDescTBk.Text.Trim(),
                            DaSelect.Text.Trim()
                            
                            );
                            
                        db.SaveChanges();

                    }

                }

有没有比 GetCellContent 更好的方法来获取我可以使用的数据网格行的值? 提前谢谢

wpf datagrid row
1个回答
1
投票

所有值都可以在数据项中找到,并显示在 DataGridRow 中(CheckBox 除外,它可能未绑定):

for (int i = 0; i < DG_Example.Items.Count - 1; i++)
{
    mChkBox = DG_Example.Columns[0].GetCellContent(DG_Example.Items[i]) as CheckBox;

    if (mChkBox.IsChecked == true)
    {
        Lbrctn item = DG_Example.Items[i] as Lbrctn;

        db.sp_Ins_inten // using Stored Procedure
        (
            item.IntenCodeTBk,
            item.MNameTBk,
            item.Convert,
            item.ChiNameTBk,
            item.PeDescTBk,
            item.DaSelect
        );

        db.SaveChanges();
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.