C#LINQ to SQL.插入父/子Windows窗体. [英] C# LINQ to SQL. Insert Parent/child Windows Form.

查看:72
本文介绍了C#LINQ to SQL.插入父/子Windows窗体.的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

目标:

从员工绑定的datagridview中插入新记录.

填充并插入相关联系人.

表格:

员工

 

名字

 

联系人

 

contactID(PK,自动)

contactID (PK, auto)

EmployeeID

EmployeeID

地址 

父雇员.EmployeeID-> contact.EmployeeID(一对多)

Parent employee.EmployeeID --> contact.EmployeeID (one-to-many)

BindingNavigatorAddNewItem_Click事件: 

 private void bindingNavigatorAddNewItem_Click(object sender, EventArgs e)
        {
            employee employees = new employee
            {

                contacts = new System.Data.Linq.EntitySet<contact>()
                {
                    new contact{    PrimaryContact = 1,
                                    Address = addressTextBox.Text,
                                    City = cityTextBox.Text,
                                    Province = provinceTextBox.Text,
                                    Country = countryTextBox.Text,
                                    PostalCode = postalCodeTextBox.Text,
                                    Phone = phoneTextBox.Text,
                                    Mobil = mobilTextBox.Text,
                                    Fax = faxTextBox.Text,
                                    Email = emailTextBox.Text
                    }
                }
            };

            context.employees.InsertOnSubmit(employees);
            
        }  

  此调试输出为:

 INSERT INTO [dbo].[employee]([UserName], [Password], [Photo], [CreatedDate], [Salutation], [FirstName], [MiddleName], [LastName], [NickName], [PreferredName], [BirthDate], [Age], [Citizenship], [Sex], [Ethnicity], [SIN], [DriversLicenceNumber], [MaritalStatus], [MaidenName], [Comment], [DeceasedID], [SupervisorID])
VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10, @p11, @p12, @p13, @p14, @p15, @p16, @p17, @p18, @p19, @p20, @p21)

SELECT CONVERT(Int,SCOPE_IDENTITY()) AS [value]
-- @p0: Input VarChar (Size = 0; Prec = 0; Scale = 0) [Null]
-- @p1: Input VarChar (Size = 0; Prec = 0; Scale = 0) [Null]
-- @p2: Input Image (Size = 0; Prec = 0; Scale = 0) [Null]
-- @p3: Input Date (Size = 0; Prec = 0; Scale = 0) []
-- @p4: Input VarChar (Size = 0; Prec = 0; Scale = 0) [Null]
-- @p5: Input VarChar (Size = 0; Prec = 0; Scale = 0) [Null]
-- @p6: Input VarChar (Size = 0; Prec = 0; Scale = 0) [Null]
-- @p7: Input VarChar (Size = 0; Prec = 0; Scale = 0) [Null]
-- @p8: Input VarChar (Size = 0; Prec = 0; Scale = 0) [Null]
-- @p9: Input VarChar (Size = 0; Prec = 0; Scale = 0) [Null]
-- @p10: Input Date (Size = 0; Prec = 0; Scale = 0) []
-- @p11: Input Int (Size = 0; Prec = 0; Scale = 0) [Null]
-- @p12: Input VarChar (Size = 0; Prec = 0; Scale = 0) [Null]
-- @p13: Input VarChar (Size = 0; Prec = 0; Scale = 0) [Null]
-- @p14: Input VarChar (Size = 0; Prec = 0; Scale = 0) [Null]
-- @p15: Input VarChar (Size = 0; Prec = 0; Scale = 0) [Null]
-- @p16: Input VarChar (Size = 0; Prec = 0; Scale = 0) [Null]
-- @p17: Input VarChar (Size = 0; Prec = 0; Scale = 0) [Null]
-- @p18: Input VarChar (Size = 0; Prec = 0; Scale = 0) [Null]
-- @p19: Input VarChar (Size = 0; Prec = 0; Scale = 0) [Null]
-- @p20: Input Int (Size = 0; Prec = 0; Scale = 0) [Null]
-- @p21: Input Int (Size = 0; Prec = 0; Scale = 0) [Null]
-- Context: SqlProvider(Sql2008) Model: AttributedMetaModel Build: 3.5.30729.715

INSERT INTO [dbo].[employee]([UserName], [Password], [Photo], [CreatedDate], [Salutation], [FirstName], [MiddleName], [LastName], [NickName], [PreferredName], [BirthDate], [Age], [Citizenship], [Sex], [Ethnicity], [SIN], [DriversLicenceNumber], [MaritalStatus], [MaidenName], [Comment], [DeceasedID], [SupervisorID])
VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10, @p11, @p12, @p13, @p14, @p15, @p16, @p17, @p18, @p19, @p20, @p21)

SELECT CONVERT(Int,SCOPE_IDENTITY()) AS [value]
-- @p0: Input VarChar (Size = 0; Prec = 0; Scale = 0) [Null]
-- @p1: Input VarChar (Size = 0; Prec = 0; Scale = 0) [Null]
-- @p2: Input Image (Size = 0; Prec = 0; Scale = 0) [Null]
-- @p3: Input Date (Size = 0; Prec = 0; Scale = 0) []
-- @p4: Input VarChar (Size = 0; Prec = 0; Scale = 0) [Null]
-- @p5: Input VarChar (Size = 15; Prec = 0; Scale = 0) [Test First Name]
-- @p6: Input VarChar (Size = 0; Prec = 0; Scale = 0) [Null]
-- @p7: Input VarChar (Size = 0; Prec = 0; Scale = 0) [Null]
-- @p8: Input VarChar (Size = 0; Prec = 0; Scale = 0) [Null]
-- @p9: Input VarChar (Size = 0; Prec = 0; Scale = 0) [Null]
-- @p10: Input Date (Size = 0; Prec = 0; Scale = 0) []
-- @p11: Input Int (Size = 0; Prec = 0; Scale = 0) [Null]
-- @p12: Input VarChar (Size = 0; Prec = 0; Scale = 0) [Null]
-- @p13: Input VarChar (Size = 0; Prec = 0; Scale = 0) [Null]
-- @p14: Input VarChar (Size = 0; Prec = 0; Scale = 0) [Null]
-- @p15: Input VarChar (Size = 0; Prec = 0; Scale = 0) [Null]
-- @p16: Input VarChar (Size = 0; Prec = 0; Scale = 0) [Null]
-- @p17: Input VarChar (Size = 0; Prec = 0; Scale = 0) [Null]
-- @p18: Input VarChar (Size = 0; Prec = 0; Scale = 0) [Null]
-- @p19: Input VarChar (Size = 0; Prec = 0; Scale = 0) [Null]
-- @p20: Input Int (Size = 0; Prec = 0; Scale = 0) [Null]
-- @p21: Input Int (Size = 0; Prec = 0; Scale = 0) [Null]
-- Context: SqlProvider(Sql2008) Model: AttributedMetaModel Build: 3.5.30729.715

INSERT INTO [dbo].[contact]([PrimaryContact], [Address], [City], [Province], [Country], [PostalCode], [Phone], [Mobil], [Fax], [Email], [EmployeeID], [BusinessDetailID])
VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10, @p11)

SELECT [t0].[ContactID], [t0].[EmployeeID], [t0].[BusinessDetailID]
FROM [dbo].[contact] AS [t0]
WHERE [t0].[ContactID] = (SCOPE_IDENTITY())
-- @p0: Input Int (Size = 0; Prec = 0; Scale = 0) [1]
-- @p1: Input VarChar (Size = 0; Prec = 0; Scale = 0) []
-- @p2: Input VarChar (Size = 0; Prec = 0; Scale = 0) []
-- @p3: Input VarChar (Size = 0; Prec = 0; Scale = 0) []
-- @p4: Input VarChar (Size = 0; Prec = 0; Scale = 0) []
-- @p5: Input VarChar (Size = 0; Prec = 0; Scale = 0) []
-- @p6: Input VarChar (Size = 0; Prec = 0; Scale = 0) []
-- @p7: Input VarChar (Size = 0; Prec = 0; Scale = 0) []
-- @p8: Input VarChar (Size = 0; Prec = 0; Scale = 0) []
-- @p9: Input VarChar (Size = 0; Prec = 0; Scale = 0) []
-- @p10: Input Int (Size = 0; Prec = 0; Scale = 0) [63]
-- @p11: Input Int (Size = 0; Prec = 0; Scale = 0) [Null]
-- Context: SqlProvider(Sql2008) Model: AttributedMetaModel Build: 3.5.30729.715

 

 如您所见,添加新"按钮首先插入与datagridview中的列相关的记录.

 As you can see the Add New button first inserts a record that is related to the columns in the datagridview.

然后插入基于在click事件内创建的对象. click事件中的对象可用于更新父级和子级数据.

Then inserts a new record based on the object created inside the click event. The object inside the click event works for updating parent and child data.

&pb

我一直在寻找答案.我已经阅读了许多相关文章,但仍然无法获得所需的结果.

I have been searching for an answer to this for some time now. I have read as many related posts and am still unable to get the results that I am looking for.

 提前感谢

推荐答案

我没有适合您的答案,但是我有建议可以帮助您获得答案.

I don''t have an answer for you, but I do have a suggestion that might help you get the answer.

1.您的问题目前读起来就像是一堵巨大的文字墙和未格式化的代码.尝试精简您的帖子,只包含基本内容.简洁是一种美德.

1. Your question currently reads like a massive wall of text and unformatted code. Try slimming down your post, include only the essentials. Brevity is a virtue.

2.没有真正的底线问题.或者,如果有的话,它就会迷失在文字的海洋中.确保您的问题确实突出(也许将其加粗),并使您的问题尽可能简单明了.

2. There''s no real bottom-line question. Or if there is, it''s lost in a sea of text. Make sure your question actually stands out, perhaps by bolding it, and make your question as straightforward as possible.  


这篇关于C#LINQ to SQL.插入父/子Windows窗体.的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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