【发布时间】:2015-05-29 10:19:03
【问题描述】:
我正在使用 MS Visual Studio 2013 为客户创建员工培训计划,但似乎无法弄清楚一件事...
我遇到的问题是将复选框矩阵中的任何更改写回相关表 (VehicleTrainingMatrix)
矩阵摘要:汽车制造商拥有一系列车辆和 3 个部门,即制造、零件、制造和精加工。在显示矩阵之前,已在程序中选择了员工。基本上,每辆车都有一行显示车辆名称,然后是 3 个复选框(每个部门 1 个),如果该员工已针对特定车辆的特定部门接受过培训,则您在相关位置输入 Tick。简单,所以我想!?!?
数据表已从数据源拖到表单上。
它基于以下SQL ...
SELECT V.Vehicle, VTM.PART AS Parts, VTM.CONST as Construction, VTM.FIN AS Finishing
FROM VehicleTrainingMatrix AS VTM RIGHT OUTER JOIN
Vehicles AS V ON VTM.VehicleID = V.ID AND VTM.EmployeeID = @IDparam
ORDER BY V.Vehicle
在我的程序中,我有以下行来加载数据:
Me.VehicleTrainingMatrixTableAdapter.FillByID(TrainingDBDataSet.VehicleTrainingMatrix, SelectedEmployeeID)
您应该看到查询中的 IDparam 被提供的 SelectedEmployeeID 变量满足。
VehicleTrainingMatrix 表定义:
CREATE TABLE [dbo].[VehicleTrainingMatrix](
[ID] [int] IDENTITY(1,1) NOT NULL,
[EmployeeID] [int] NOT NULL,
[VehicleID] [int] NOT NULL,
[PART] [bit] NULL,
[CONST] [bit] NULL,
[FIN] [bit] NULL,
PRIMARY KEY CLUSTERED
([ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]
基本上,矩阵中带有 Tick 的任何行都与表中的一行相关。该行将存储相关的员工 ID 和车辆 ID,并在相关字段 PART、CONST 或 FIN(或组合,1 行可以勾选所有 3 个)中带有“1”(打勾)。
加载数据有效。我遇到的问题是将任何车辆训练矩阵对 VTM 表的更改写回数据库。
我尝试在表适配器定义的高级选项中勾选“生成插入、更新和删除语句”,但没有发生这种情况。当您返回定义时,它们再次变灰。我已经对此进行了研究,我相信(如果我错了,请纠正我)这是因为我的选择查询中列出了超过 1 个表。 另一点是我真的不认为我需要 VehicleTrainingMatrix.ID 字段,我只是在试图解决这个问题时才添加它不能写回数据库问题(我已经尝试对这个问题进行排序几天了)其中一个帖子似乎表明我需要一个主键来执行此操作。
我已手动将以下内容添加到 SQL 中
INSERT INTO [dbo].[VehicleTrainingMatrix]
([EmployeeID]
,[VehicleID]
,[PART]
,[CONST]
,[FIN])
VALUES
(621, 2, 1, NULL ,NULL)
621 = 员工 ID,
2 = 车辆 ID 值
1 = 该员工在 ID 2 车辆的零件部门接受培训
NULL = 该员工未在 ID 2 车辆的施工部门接受培训
NULL = 该员工未在 ID 2 车辆的施工部门接受培训
希望以上内容包含所需的所有详细信息,但要总结一下从数据库中读取的数据表并完美地填充矩阵。我的问题是我怎样才能对矩阵进行任何更改(只有新的刻度我将禁用取消选中的能力,但不太确定如何)。如果未勾选的行中有勾选,则更改可能涉及必须在表 VehicleTrainingMatrix 中创建新行,或者只是更新现有行。
所以你知道我的水平,我刚刚回到编程领域(在做了几年的支持之后)并且基本上已经自学了 .net(请不要用 C 示例回应)和 VS 2014。我学到了很多东西曲线,但在这个问题上做得很好。我可能会丢失某些术语,因此我希望能得到解释,而不是简短的回答。
非常感谢任何花时间提供帮助的人。
保罗。
【问题讨论】:
标签: .net sql-server winforms