我正在尝试开发的代码上的奇怪行为。 我不明白它是否与DB / code / permissions ..或其他。
发生的事情是,在填写表单后,一些应该为0的特定值将作为null传递给数据库。如果我直接在数据库上看到它们,则将它们设置为null。其中一个字段是“int”,另一个是“boolean”。 对于这段代码,我正在使用C#和ASP.net以及实体框架。该数据库是Microsoft SQL。
尝试在此处查找问题可能有用吗? 我能错过什么?
到目前为止,我已经尝试了以下内容:
此外,它们适用于此对象中的其他字段。
我在stackoverflow和网络上搜索了一些解决方案,但到目前为止,没有任何工作。
我还能检查什么来理解值到达数据库的原因为空?
代码:
string path = Server.MapPath("~/prod/ficheiros/") + uplFicheiro.FileName;
uplFicheiro.SaveAs(path);
videos v = new videos();
v.id = 21;
v.video_name = VideoName.Text;
v.desc = DescVideo.Text;
v.aprov = true; <--- reaches DB as null
v.username = Page.User.Identity.Name;
v.url = "45";
v.num_visualizacoes = 0; <--- reaches DB as null
AcessoDados.DBVideos.insertVideo(v);
GridView1.DataBind();
CleanForm();
insertVideo:
[DataObjectMethod(DataObjectMethodType.Insert, true)]
public static bool insertVideo(videos vid)
{
bool res = false;
try
{
contexto.Entry(vid).State = System.Data.Entity.EntityState.Added;
res = (contexto.SaveChanges() != 0);
}
catch (Exception) { }
return res;
}
我发现了问题。在数据库上写入的方法不包括我看到的字段为null。因此,他们到达DB的原因是null。 我需要更正由实体模型生成的这部分。有没有办法让模型得到纠正而不是我手动编写方法?
答案 0 :(得分:0)
- 你需要去colu的房产 - 检查一般块 - &gt;默认值和绑定 - 确保将其设置为0(零) - 如果它是空白,它将采用defaulf NULL