如何创建主详细信息插入表单
我正在使用 Northwind 数据库,并且想要创建一个 C# .Net Framework Windows 表单 来生成订单输入。
我已经链接了数据集中的表和绑定源,并使用绑定导航器能够查看其中的每个表,
问题是我无法找到一种方法将订单详细信息添加到未创建的订单中,因为它会抛出向数据库插入空值的例外。 (我以为使用自动增量可以解决这个问题,但事实并非如此)
你们有什么想法吗?
i'm using the Northwind database and I want to create a C# .Net Framework windows form to generate an order input.
I already linked the tables in my dataset and the binding source and used the binding navigator to be able to view each one of them
The thing is i'm unable to find a way to add the order details to an uncreated order because it throws an exception of inserting null values to the DB. (I thought that using autoincrement will solve it, but it won't)
do you guys have any idea?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要修改数据集中创建的查询。
打开数据集设计器并选择表适配器(DataTable/TableAdapter 对的下半部分,位于 Fill,GetData() 行上方)。
右键单击并选择属性。
在属性窗格中,您可以看到 SELECT、INSERT、UPDATE、DELETE 的查询。
INSERT 查询中需要省略 Identity 字段。在更新查询中,需要在 where 子句中使用它们来定位要更新的原始记录并将其从查询的设置部分中排除。
需要提供的其他字段(但您不希望用户输入)可以在 INSERT 查询中手动填充适当的数据(用于 guid 的 NEWID() 或用于日期时间字段的 GETDATE() 等)。
计算的字段应从插入和更新查询中排除。
最后,可以从更新查询的设置操作中排除不会被编辑操作更改的字段。
You need to modify the queries created in the dataset.
Open the dataset designer and select the table adapter (The bottom half of the DataTable/TableAdapter pair just above the line that reads Fill,GetData()).
Right click and select Properties.
In the properties pane you see the queries for SELECT, INSERT, UPDATE, DELETE.
Identitfy fields need to be omitted from the INSERT queries. In the update query they need to be used in the where clause to locate the original record to update and excluded from the set portion of the query.
Other fields that need to be supplied (but you don't want entered by the user) can be manually populated in the INSERT query with appropriate data (NEWID() for guids, or GETDATE() for date time fields, etc).
Fields that are calculated should be excluded from both the insert and update queries.
Lastly, fields that wont be changed by an edit operation can be excluded from the set operation of the update query.