我了!
我有一个问题。使用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的负荷,所以如果有人能纠正我,我将非常感激。
答案 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();
}