0
我在我的项目.NET中使用EF 4(model first),我在DateTime
字段中遇到了麻烦。DateTime2让我疯狂
当我将使用SaveChanges()
此抛出异常:
System.Data.SqlClient.SqlException:一个DATETIME2数据类型为datetime数据类型的转换导致的外的范围值。
我试着使用:
System.Globalization.CultureInfo enGB = new System.Globalization.CultureInfo("en-GB");
,但没有新的情况发生。如果我今晚没有修好它,我会爆炸我的电脑。
我需要帮助,我不希望发生爆炸我的电脑=(1周试图解决它没有成功
这里是我的代码:
protected void btnSave_Click(object sender, EventArgs e)
{
int id = Convert.ToInt32(Request.QueryString["id"]);
ModeloContainer ctx = new ModeloContainer();
Cliente cli = ctx.Cliente.Where(cl => cl.IdCliente == id).First();
Contrato c = new Contrato();
c.Descricao = this.txtDescricao.Text;
c.FaturarPara = this.ddlFaturarPara.SelectedValue;
c.Tolerancia = Convert.ToInt32(this.txtSuspenderContratoEm.Text);
c.PeriodoPagto = this.ddlPeriodoPagamento.SelectedValue;
// DateTime dtExpiracao = this.txtExpiraEm.Text.Trim() == "" ? Convert.ToDateTime("01/01/0001") : Convert.ToDateTime(this.txtExpiraEm.Text.Trim());
DateTime dt = DateTime.Now;
System.Globalization.CultureInfo enGB = new System.Globalization.CultureInfo("en-GB");
dt = Convert.ToDateTime(dt, enGB);
c.ExpiraEm = dt; //Here is the problem! but I no have idea how fix it
ctx.AddToContrato(c);
ctx.SaveChanges();
this.SalvarServiços(c.IdContrato);
}
我知道,有这样的这么多问题在这里,但他们没有解决我的问题
我想在文本框中插入日期是这样的:09/08/2012
尝试[这篇文章](http://stackoverflow.com/questions/4259716/datetime2-conversion-in-ef4)如果没有帮助你,你可以发布你的模型/ – 2012-08-09 20:51:32
是否有任何其他非 - 您实体中的可为空的'DateTime'字段?如果是的话,这是您的问题的来源,因为EF正在向该列发送1/1/0001。您还可以使用SQL分析器来检查EF试图保存到数据库的值。 – 2012-08-09 21:35:38