C#LINQ to SQL.插入父/子Windows窗体. [英] C# LINQ to SQL. Insert Parent/child Windows Form.
问题描述
目标:
从员工绑定的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屋!