- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在数据库中使用 NHibernate 持久化我的对象
App
对象定义了一个属性:
public virtual DateTime ReleaseDate { get; set; }
在映射类中:
Map(x => x.ReleaseDate).Not.Nullable();
在 sqlServer 2008 中,它的数据类型是 dateTime
并且不可为空。
第一次没有错误地保存到数据库。但是在更新应用程序信息后,我遇到了 SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间。
但应用发布日期是一个有效的日期时间:2/16/2014 2:21:58 AM
并且它不为空。
所以我很困惑为什么会引发这个异常?
ist<App> apps = session.QueryOver<Data.Model.App>()
.List()
.ToList();
.
.
.
.
for (int i = 0; i < apps.Count(); i++)
{
App appWithOldInfo = apps[i];
using (ITransaction transaction = session.BeginTransaction())
{
try
{
//updating app info
appWithOldInfo = UpdateAppInfo(appWithOldInfo, appWithNewInfo);
session.Update(appWithOldInfo);
transaction.Commit();
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
}
看截图:
最佳答案
感谢大家提出有用的意见。
问题是我正在获取 device
来自 DB 的对象具有属性 LastActivityDate
List<Device> devices = session.QueryOver<Data.Model.Device>().List().ToList();
我在将带有一些信息的设备对象添加到数据库后将此属性添加到模型中。此属性为空,但我没有将 LastActivityDate 定义为可为空的属性。
所以这个对象在应用程序对象的同一个 session 中。当我刷新 session 时,因为 LastActivityDate
为空,出现 SqlDateTime 异常!
很简单。但我花了几个小时才找到它!!
关于c# - 使用 NHibernate 的 SqlDateTime 溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22272462/
我在 SQL Server Management Studio 中使用了 SQL 语句,我在其中输入了以下日期时间 {ts '9999-12-31 23:59:59'} 的无限有效性,但是当我尝试通过
考虑以下程序: DateTime dateTime = new DateTime(634546165144647370); SqlDateTime sqlDateTime = new SqlDateT
我使用存储过程来获取分页列表,这是我的方法: using(SqlConnection conn = new SqlConnection(_connectionString)) { using(S
我刚刚发现我的 SqlDateTime.MinValue 在不同的机器上是不同的。 有时是 = DateTime(1953, 1, 1, 0, 0, 0); 但在其他机器上它是 = DateTime(
table = {{ID1, SQLDateTime[{1978, 1, 10, 0, 0, 0.`}]}, {ID2, SQLDateTime[{1999, 1, 10, 0, 0, 0.`}]},
我正在映射一个非常简单的 Users 表,并且我有一个名为“LastLoginDate”的列,它在 sql server 中定义为可为空。 我的映射看起来像这样: public Users {
我似乎无法将 sqldatatime.minvalue 转换为 datetime 对象。 我试过: Datetime dt = Convert.ToDateTime(SqlDateTime.MinVa
我想知道,为什么 SqlDateTime.MinValue 与 DateTime.MinValue 不一样? 最佳答案 我认为 SQL 和 .NET 的 Date 数据类型之间的差异源于 SQL Se
我需要用 SqlDateTime.Parse(val) 其中 val 是一个字符串,例如“23.3.1992 00:00:00 ”。 字符串为欧洲格式,即日在月之前。但是 Parse 需要“美国”格式
我在数据库中使用 NHibernate 持久化我的对象 App 对象定义了一个属性: public virtual DateTime ReleaseDate { get; set; } 在映射类中:
我有一个从源(DataRow 或 SqlDataReader)获取日期属性的方法: protected SqlDateTime GetSqlDateTimePropertyValue(string p
到处找都试过了,还是不行。 目前的方法是 DateTime dt = (DateTime)sqlparam.Value;。我可以想象在不同的配置、不同的 SQL 区域设置、不同的 PC 区域设置等
我不想验证 txtBirthDate,所以我想在数据库中传递 DateTime.MinValue。 我的代码: if (txtBirthDate.Text == string.Empty)
在将 .NET DateTime(默认情况下(DateTime))转换为 SqlDateTime 时,我应该始终检查 .NET 日期是否在 SqlDateTime.MinValue 和 SqlDate
当我将 DateTime 变量与 SqlDateTime.MinValue 进行比较时: if (StartDate > SqlDateTime.MinValue) { // some code
System.DateTime可以采用比 SQL Server 的 DateTime 更广泛的值。因此有类 System.Data.SqlTypes.SqlDateTime模仿后者。 因此,我希望 E
我正在开发一个以 NHibernate 作为后端的 ASP.NET MVC 项目,但在将一些日期写回到我的 SQL Server 数据库表中时遇到一些问题。 这些日期字段不可为空,因此此处有关如何设置
我正在用 c#.net 编写一个与 sql DB 一起工作的应用程序。我有 5 个字段 - 日期时间。当我处于 Debug模式时,我看到 DateTime 字段是正确的,但是当我运行应用程序时,我得到
以下代码使用比较 运算符可以正常编译。 If(dateTimeVariable > SqlDateTime.MinValue) //compiles Ok. dateTimeVariable is o
我正在尝试将日期从 C# 保存到 SQL Server。首先要向用户显示日期格式为 dd/MM/yyyy。然后在 Winforms 屏幕上选择日期后。我想将它保存到数据库中。如果我删除代码中的 dat
我是一名优秀的程序员,十分优秀!