2009-11-24 96 views
0

我再次!LINQ插入查询

我有一个问题。使用LINQ插入到sql表中。我基本上创建了一个反馈表单,用户在这里输入详细信息,点击提交并将其数据插入到sql表中。

我还没有很远!

protected void btnSubmitFeedback_Click(object sender, EventArgs e) 
{ 
    ORFeedDataClassesDataContext db = new ORFeedDataClassesDataContext(); 
    tblOnlineReportingFeedback newtblonlineReportingFeedback = new tblOnlineReportingFeedback(); 
    newtblonlineReportingFeedback.Name = "txtbxFdName"; 
    db.tblOnlineReportingFeedbacks.InsertOnSubmit(newtblonlineReportingFeedback); 
    db.SubmitChanges(); 
} 

我已经设置了sql表格,以便每次插入行时都插入一个唯一的自动编号。然而,当我运行上面,我收到以下内容:

“SQLEXCEPTION被用户代码处理 - 字符串或二进制数据将被截断该声明已被截断。”

谁能想到一个工作围绕为了这?无论如何,emy code的代码都是poo的负载,所以如果有人能纠正我,我会非常感激。

+0

要格式化代码块使用的代码之前空间(选择它,然后按Ctrl + K)。使用反引号(')只适用于内联的东西。 – 2009-11-24 15:14:56

+0

oops,s/for/four/ – 2009-11-24 15:15:43

回答

2

您得到的错误是由tblOnlineReportFeedback表中的Name列引起的。

列的长度不足以保存数据。

尝试改变柱至少VARCHAR(11)

而且,我不知道,如果你的意思把txtbxFdName作为插入的字符串。这听起来是应该从一个名为“文本框得到它txtbxFdName"

newtblonlineReportingFeedback.Name = txtbxFdName.Text; 
1

我会检查你的表中列的长度......看起来你正试图把一些东西放大一点,因此截断。

善良,

2

该错误消息指出,在数据库中的字段Name是太小,无法包含你想插入值。尝试重新设计表格以适应更多字符

1

!我得到了一个工具,兴奋LINQ我忘了,以确保该表是正确设置。

也许它的时间离开电脑一段时间!

挂一秒,我已经运行它,上面报告的错误是排序,但我返回的名称是“txtbxFdName”,而不是该特定的值textbox。

Just如果有人在这个寻找的,正确的代码应该是这样的:

protected void btnSubmitFeedback_Click(object sender, EventArgs e) 
{ 
    ORFeedDataClassesDataContext db = new ORFeedDataClassesDataContext(); 
    tblOnlineReportingFeedback newtblonlineReportingFeedback = new tblOnlineReportingFeedback(); 
    newtblonlineReportingFeedback.Name = txtbxFdName.Text; 
    db.tblOnlineReportingFeedbacks.InsertOnSubmit(newtblonlineReportingFeedback); 
    db.SubmitChanges(); 

} 

感谢一双崭新的眼睛所有。

+0

看看我的回答,我解决了您的问题 – 2009-11-24 15:26:39

+1

不要忘记投票或接受答案作为解决方案。 – 2009-11-24 15:36:01

0

您可能希望不仅查看实际表中的列大小,还要查看.dbml视图中对象的属性,确保此窗格中的所有数据类型都与实际表格。
你也应该考虑把这个代码放到一个using语句作为其好的做法,以尽量减少内存问题=]

using(ORFeedDataClassesDataContext db = new ORFeedDataClassesDataContext()) 
{ 
    tblOnlineReportingFeedback newtblonlineReportingFeedback = new tblOnlineReportingFeedback 
    newtblonlineReportingFeedback.Name = txtbxFdName.Text; 
    db.tblOnlineReportingFeedbacks.InsertOnSubmit(newtblonlineReportingFeedback); 
    db.SubmitChanges(); 
}