Linq-to-SQL DataContext 更新

标签 linq linq-to-sql datacontext

我收到此运行时异常

Unable to cast object of type 'System.Data.SqlTypes.SqlDecimal' to type 'System.String'.

如何修复我的代码以获得没有异常的结果?

ProductsDataContext db = new ProductsDataContext(); 

var matchedproduct = db.GetTable<product>().SingleOrDefault(p =>p.ProductID==productID);

if (matchedproduct != null)               
   product.ProductName = txtpname.Text;

db.SubmitChanges();

最佳答案

如果您没有收到编译时错误,那是因为您的 dbml 没有准确描述数据库中的列。您的对象认为它是一个字符串,但在数据库中它显然是一个十进制。您应该在 dbml 编辑器中更新它。然后,当您设置产品名称时,您必须从文本中解析出十进制值。

关于Linq-to-SQL DataContext 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10562359/

相关文章:

c# - 将多个连续的相等字符从一个字符串减少为一个

c# - LINQ 到存储过程。我可以使用动态参数列表来调用 SP,而不是强类型化它们吗?

c# - "A cycle was detected in the set of changes"尝试向数据库添加循环链表时

c# - Linq 存储过程问题 - 返回一个 int

c# - 某种流程顺序

wpf - 带有 DataContext Self 和 ViewModel 的窗口

c# - 我应该在 RavenDB 上使用 LINQ 查询吗?

c# - 无法将类型 'System.Collections.Generic.IEnumerable<AnonymousType#1>' 隐式转换为 'System.Collections.Generic.List<CUSTOM DATA TYPE>

c# - 为什么只有一些子元素的属性由其父元素定义