在datagridview中编辑数据绑定字段 [英] editing the databound field in datagridview

查看:113
本文介绍了在datagridview中编辑数据绑定字段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的Winform应用程序中有一个datagridview,它使用下面的查询从SQl Server数据库获取数据

并将其填充到datatable swipedata



I had a datagridview in my Winform application which fetch data from SQl Server database
using the query below and fill it to datatable swipedata

SELECT        EmpSwipedataBank_tbl.Swipedataid AS [swipe id], EmpSwipedataBank_tbl.empid AS [Emp Id], EmpSwipedataBank_tbl.SwipeDate AS [Swipe Date],     ShiftDayDetails_tbl.DayOFWeekname AS [Day of Week], ShiftDayDetails_tbl.DayStatus AS [Day Status], EmpSwipedataBank_tbl.Intime AS [Swipe In],         EmpSwipedataBank_tbl.Outtime AS [Swipe Out], EmpSwipedataBank_tbl.ApprInstatus AS InStatus, EmpSwipedataBank_tbl.ApprOutStatus AS [Out Status],      EmpSwipedataBank_tbl.Invalue AS [In Value], EmpSwipedataBank_tbl.Outvalue AS [Out Value], EmpSwipedataBank_tbl.IsAdjusted AS [Is Adjusted],       DATEDIFF(MINUTE, EmpSwipedataBank_tbl.Intime, EmpSwipedataBank_tbl.Outtime) AS Duration,        ShiftDayDetails_tbl.TotalDuration + ShiftDayDetails_tbl.BreakDuration AS [Total Shift Time], WorkLimitDetails_tbl.MaxWorkLimit AS [MAX WORK LIMIT],'0' as Difference ,             DATEDIFF(MINUTE, EmpSwipedataBank_tbl.Intime, EmpSwipedataBank_tbl.Outtime) - WorkLimitDetails_tbl.MaxWorkLimit AS Difference1 FROM            EmpSwipedataBank_tbl INNER JOIN                    EmployeShift_tbl ON EmpSwipedataBank_tbl.empid = EmployeShift_tbl.Empid INNER JOIN            ShiftDayDetails_tbl ON EmployeShift_tbl.Shiftpk = ShiftDayDetails_tbl.ShiftPK AND                      (SELECT        DATENAME(dw, EmpSwipedataBank_tbl.SwipeDate) AS Expr1) = ShiftDayDetails_tbl.DayOFWeekname INNER JOIN          WorkLimitMaster_tbl ON ShiftDayDetails_tbl.ShiftPK = WorkLimitMaster_tbl.ShiftPk INNER JOIN       WorkLimitDetails_tbl ON WorkLimitMaster_tbl.WorkLimitPK = WorkLimitDetails_tbl.WorkLimitID AND       ShiftDayDetails_tbl.DayOFWeekname = WorkLimitDetails_tbl.WeekDayName INNER JOIN      EmployeeDesignation_tbl ON EmpSwipedataBank_tbl.empid = EmployeeDesignation_tbl.empid  WHERE        (EmpSwipedataBank_tbl.SwipeDate BETWEEN @Param1 AND @Param2) AND (EmployeeDesignation_tbl.BranchLocationPK = @Param3)  ORDER BY [swipe id]







我用数据源属性对数据进行数据绑定






And I i databind the data using datasource property

tblNonAdjusterdata.DataSource = swipedata;







但问题是我在尝试更改datagidview的cellvalue时获得了一个readonly异常






but the issue is Iam getting a readonly exception when trying to change the cellvalue of datagidview

tblNonAdjusterdata.Rows[i].Cells[12].Value = Math.Truncate(b.Subtract(a).TotalMinutes);

         tblNonAdjusterdata.Rows[i].Cells[15].Value = Math.Truncate(float.Parse(tblNonAdjusterdata.Rows[i].Cells[12].Value.ToString()) - float.Parse(tblNonAdjusterdata.Rows[i].Cells[14].Value.ToString()));





任何人都可以建议为什么我的datagidview不可编辑



Can anyone advice why my datagidview is not editable

推荐答案

尝试下面的代码

try with below code
foreach (DataColumn col in swipedata.Columns)
{
    col.ReadOnly = false;
}
tblNonAdjusterdata.DataSource = swipedata;


这篇关于在datagridview中编辑数据绑定字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆