LINQ插入查询

时间:2009-11-24 15:10:40

标签: 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由用户代码处理 - 字符串或二进制数据将被截断。该语句已被截断”

有人能想到解决这个问题吗?无论如何,机会代码都是poo的负荷,所以如果有人能纠正我,我将非常感激。

5 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

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

列的长度不足以容纳数据。

尝试将列更改为至少VARCHAR(11)

另外,我不确定你是否有意将txtbxFdName作为要插入的字符串。听起来应该从名为“txtbxFdName"

的文本框中获取它
  newtblonlineReportingFeedback.Name = txtbxFdName.Text;

答案 2 :(得分:1)

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

善,

答案 3 :(得分:1)

什么工具!!!我对LINQ感到兴奋,我忘了确保桌子设置正确。

也许是时候离开电脑一段时间了!

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

如果有人正在研究这个问题,那么正确的代码应如下所示:

  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();

}

感谢所有人的新眼睛。

答案 4 :(得分:0)

您可能不仅需要查看实际表中的列大小,还要查看.dbml视图中对象的属性,请确保此窗格中的所有数据类型都与实际中的数据类型相匹配表。
您还应该考虑将此代码放入using语句中作为最小化内存问题的良好实践=]

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