相关疑难解决方法(0)

实体框架:"存储更新,插入或删除语句影响了意外的行数(0)."

我正在使用Entity Framework来填充网格控件.有时当我进行更新时,我收到以下错误:

存储更新,插入或删除语句会影响意外的行数(0).自实体加载后,实体可能已被修改或删除.刷新ObjectStateManager条目.

我无法弄清楚如何重现这一点.但它可能与我进行更新的距离有多大关系.有没有人看过这个或有没有人知道错误信息是指什么?

编辑:不幸的是我不再自由地重现我在这里遇到的问题,因为我离开了这个项目并且不记得我是否最终找到了解决方案,如果另一个开发人员修复它,或者我是否解决了这个问题.因此我不能接受任何答案.

entity-framework

312
推荐指数
18
解决办法
31万
查看次数

比较两个日期时间时忽略毫秒

这可能是一个愚蠢的问题,但我似乎无法弄明白.我正在比较两个文件的LastWriteTime,但是它总是失败,因为我从网上下载的文件总是将毫秒设置为0,而我的原始文件有一个实际值.在比较时是否有一种忽略毫秒的简单方法?

这是我的功能:

//compare file's dates
public bool CompareByModifiedDate(string strOrigFile, string strDownloadedFile)
{
     DateTime dtOrig = File.GetLastWriteTime(strOrigFile);
     DateTime dtNew = File.GetLastWriteTime(strDownloadedFile);

     if (dtOrig == dtNew)
        return true;
     else
        return false;
}
Run Code Online (Sandbox Code Playgroud)

提前致谢

c# datetime c#-4.0

69
推荐指数
7
解决办法
4万
查看次数

强制XmlSerializer将DateTime序列化为'YYYY-MM-DD hh:mm:ss'

我有一些用于某些RESTful服务的XSD架构.当与xsd.exe工具结合使用以生成C#代码时,XSD会xs:date生成以下代码:

[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, DataType="date")]
public System.DateTime time {
    get {
        return this.timeField;
    }
    set {
        this.timeField = value;
    }
}
Run Code Online (Sandbox Code Playgroud)

将XML反序列化为使用XmlSerializerall的对象似乎很好.我面临的问题是服务要求将日期格式化为YYYY-MM-DD hh:mm:ss,并且XSD生成的代码似乎只生成YYYY-MM-DD.

如果我手动修改XSD以进行xs:dateTime输入,则生成的C#代码会产生:2010-08-20T20:07:03.915039Z.

基本上,我如何强制序列化生成YYYY-MM-DD hh:mm:ss?是否可以对XSD做些什么或者我可以做些什么来改变生成的C#代码?

.net c# xml-serialization

66
推荐指数
3
解决办法
8万
查看次数

有没有更好的方法将DateTime修剪为特定的精度?

将DateTime对象修剪为特定精度的最佳方法是什么?例如,如果我的DateTime值为'2008-09-29 09:41:43',但我只想要精确到分钟,有没有更好的方法来做到这一点?

private static DateTime TrimDateToMinute(DateTime date)
{
    return new DateTime(
        date.Year, 
        date.Month, 
        date.Day, 
        date.Hour, 
        date.Minute, 
        0);
}
Run Code Online (Sandbox Code Playgroud)

我真正想要的是让它变量,以便我可以将其精度设置为秒,分钟,小时或日.

.net c# datetime

49
推荐指数
3
解决办法
2万
查看次数

MVC中的最后修改标头

我最近遇到了Last-Modified Header.

  • 如何以及在何处将其包含在MVC中?
  • 包含它有什么好处?

我想要一个例子,如何将最后修改的头文件包含在mvc项目中,对于静态页面和数据库查询也是如此?

它与outputcache有什么不同,如果是的话怎么样?

基本上,我希望浏览器清除缓存并自动显示最新的数据或页面,而无需用户刷新或清除缓存.

.net asp.net asp.net-mvc asp.net-mvc-3

39
推荐指数
4
解决办法
2万
查看次数

比较datetime而不是毫秒

我需要在两个单独的列表中比较日期.每个列表都由MyFile对象构成.这是我创建的一个类,用于获取有关文件的特定信息,例如name,dateModified,extension等.唯一的问题是我的第二个列表中的很多MyFiles对象(从外部硬盘驱动器获取)没有将dateTime标记(LastWriteTime)保留到毫秒.我相信这就是为什么我的比较不起作用的原因.例如,这里是我的比较失败的一个例子:"为什么c#认为日期不相等?" 调试

a和b是MyFile对象,MyFile类包含一个属性ticks,它等于file.LastWriteTime.Ticks它们没有在我刚刚包含它们的程序中用于调试目的.因此,经过多次调试后,我意识到最后7位代表文件的毫秒数.因此,我在MyFile中的ticks属性现在包含11个有效数字而不是18个(注意18-11 = 7).这个问题是,当我比较滴答时,当我尝试通过除以10000000然后多打10000000来更新ticks属性时,我得到奇怪的结果.因为我的ticks propery是一个long int,它将丢失最后7位数当我划分.我得到的'错误'更少.但是有一些其他时候我得到这样的东西: 在此输入图像描述

在这里我们可以看到日期至少相同,直到第二个.为什么c#认为它不是同一个日期?我是否必须创建自己的"Ticks"功能?我知道我将dateTime转换为字符串然后比较它但我想知道一个对象a.dateModified是否比对象b.dateModified更新的可能性

c# datetime

17
推荐指数
1
解决办法
1万
查看次数

让datetime.now返回到最近的秒

我有一个"要求"给出最接近的第二个时间戳...但不是更准确.舍入或截断时间很好.

我想出了这种可憎的事

 dateTime = DateTime.Parse(DateTime.UtcNow.ToString("U"));
Run Code Online (Sandbox Code Playgroud)

(U是长格式的日期和时间."2007年1月3日17:25:30")

是否有一些不那么可怕的方法来实现这一目标?

编辑:所以从链接截断毫秒回答(感谢约翰奥多姆)我将这样做

 private static DateTime GetCurrentDateTimeNoMilliseconds()
        {
            var currentTime = DateTime.UtcNow;
            return new DateTime(currentTime.Ticks - (currentTime.Ticks % TimeSpan.TicksPerSecond), currentTime.Kind);
        }
Run Code Online (Sandbox Code Playgroud)

几乎不那么可怕..但它确实保留了我所关心的日期时间的"种类".我的解决方案没有.

c# datetime c#-4.0

12
推荐指数
3
解决办法
1万
查看次数

剑道网格中的日期时间过滤器

我的代码在C#.NET中我正在使用Kendo Grid版本2013.2.716.340和服务器绑定来显示网格中的数据.

在Kendo UI Grid中,我有一个dateTime列,但列过滤器输入只有一个日期选择器但没有时间选择器.因此,如果我选择该选项IsEqualTo并给出一个日期,那么我得到零结果,因为时间00:00:00在过滤器中设置,但列有一些时间值.我想添加时间选择器和日期选择器.

我尝试在我的专栏上执行此操作,但它不起作用:

columns.Bound(o => o.Time).Title("Time").Format("{0:MM/dd/yyyy HH:mm:ss}").Filterable(f => f.UI("DateTimeFilter")).Width("5%");
Run Code Online (Sandbox Code Playgroud)

并已应用以下脚本:

<script type="text/javascript">
  function DateTimeFilter(control) 
  {
    $(control).kendoDateTimePicker();
  }
</script>
Run Code Online (Sandbox Code Playgroud)

上面的代码在我datetime从精选中选择时起作用datetimepicker但在我选择时它不起作用isequalto.例如:如果我datetime在我的剑道网格列中显示"12/21/2013 07:15:45",当我将其复制datetimeisequalto过滤器下的选项时,它不会提供任何数据.

此外,我尝试了此链接提供的示例 它也没有在我的情况下工作.此链接上的示例使用Ajax绑定.我需要在服务器绑定的情况下应用它.

这是附加图像,显示我想要应用的内容.是图像的链接.如果我将datetime网格中显示的内容复制到过滤器中它应该正确过滤并给出结果.

如果有人能帮助我解决我的问题,我将非常感激.提前致谢.

.net c# datetimepicker asp.net-mvc-3 kendo-grid

8
推荐指数
1
解决办法
1万
查看次数

使用OleDbParameter在Access中插入日期/时间值

我正在尝试在oledb(ms访问数据库)中插入一个名为objectdate的字段是日期/时间

我用来添加参数的代码就是这个,但是我收到了错误.

  OleDbParameter objectdate = new OleDbParameter("@objectdate", OleDbType.DBDate);
  objectdate.Value = DateTime.Now; cmd.Parameters.Add(objectdate);
Run Code Online (Sandbox Code Playgroud)

错误:

条件表达式中的数据类型不匹配.

c# oledb parameters ms-access

5
推荐指数
2
解决办法
1万
查看次数

无法使用OleDb将DateTime插入Access

尝试在Access中插入一行数据时,出现"条件表达式中的数据类型不匹配"错误.搞砸了一下之后,我把它缩小到DateTime就成了问题.

这是我的代码:

class ABGDA
{
    private OleDbConnection dbConn;
    private OleDbCommand dbCmd;
    private OleDbDataReader dbReader;
    private string sConnection;
    private string sql;
    private ABG abg;

    public void insertProgressNotes(ABG ABG)
    {
        abg = ABG;

        sConnection = "Provider=Microsoft.ACE.OLEDB.12.0;" +
                      "Data Source=SimEMR.accdb";
        dbConn = new OleDbConnection(sConnection);
        dbConn.Open();

        sql = "INSERT INTO ABG (AccountNo, LabDate, PAO2, PACO2, SAO2, Bicarbonate, BaseExcess, " + 
            "O2Setting, SetRate, SetPEEP, FiO2) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);";

        dbCmd = new OleDbCommand();
        dbCmd.CommandText = sql;
        dbCmd.Connection …
Run Code Online (Sandbox Code Playgroud)

c# ms-access winforms

5
推荐指数
1
解决办法
1万
查看次数