Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC-字符串或二进制数据将被截断。\r\n语句已终止_C#_Asp.net_Asp.net Mvc - Fatal编程技术网

C# MVC-字符串或二进制数据将被截断。\r\n语句已终止

C# MVC-字符串或二进制数据将被截断。\r\n语句已终止,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我理解此错误意味着我试图在数据库中插入一个大于允许值的值,但我看不出是哪个值导致了问题 这是我插入数据的地方: 这是数据库表定义: 在调试器中,我使用length命令查看传入值的长度,结果如下: 这是将要输入的数据示例 这是UserActivity类 根据下面所示的逻辑,我在log.Query_Time中得到一个值00:02:00.0030060,这就是为什么我怀疑这就是您遇到问题的原因。该字符串为16个字符,其中数据库中的查询时间列仅为11个字符 public class UserActiv

我理解此错误意味着我试图在数据库中插入一个大于允许值的值,但我看不出是哪个值导致了问题

这是我插入数据的地方:

这是数据库表定义:

在调试器中,我使用length命令查看传入值的长度,结果如下:

这是将要输入的数据示例

这是UserActivity类


根据下面所示的逻辑,我在log.Query_Time中得到一个值00:02:00.0030060,这就是为什么我怀疑这就是您遇到问题的原因。该字符串为16个字符,其中数据库中的查询时间列仅为11个字符

public class UserActivity
{
  public string UserEmail { get; set; }
  public string SQL_Query { get; set; }
  public string Query_Start { get; set; }
  public string Query_End { get; set; }
  public string Query_Time { get; set; }
}

static void Main(string[] args)
{
  UserActivity log = new UserActivity();
  DateTime start = DateTime.Now - TimeSpan.FromMinutes(2);
  DateTime end = DateTime.Now;
  TimeSpan Duration = end - start;

  log.UserEmail = "email@here.gov";
  log.SQL_Query = "exec FTSP_FTProblemsByCategory 5";
  log.Query_Start = String.Format("{0:hh:mm:ss}", start);
  log.Query_End = String.Format("{0:hh:mm:ss}", end);
  log.Query_Time = String.Format("{0:mm:ss.ff}", Duration.ToString());
}

根据下面所示的逻辑,我在log.Query_Time中得到一个值00:02:00.0030060,这就是为什么我怀疑这就是您遇到问题的原因。该字符串为16个字符,其中数据库中的查询时间列仅为11个字符

public class UserActivity
{
  public string UserEmail { get; set; }
  public string SQL_Query { get; set; }
  public string Query_Start { get; set; }
  public string Query_End { get; set; }
  public string Query_Time { get; set; }
}

static void Main(string[] args)
{
  UserActivity log = new UserActivity();
  DateTime start = DateTime.Now - TimeSpan.FromMinutes(2);
  DateTime end = DateTime.Now;
  TimeSpan Duration = end - start;

  log.UserEmail = "email@here.gov";
  log.SQL_Query = "exec FTSP_FTProblemsByCategory 5";
  log.Query_Start = String.Format("{0:hh:mm:ss}", start);
  log.Query_End = String.Format("{0:hh:mm:ss}", end);
  log.Query_Time = String.Format("{0:mm:ss.ff}", Duration.ToString());
}

这里的问题是持续时间的格式,我假设这是一个TimeSpan对象。如果您的持续时间为3分45秒210毫秒,则使用您目前的数据,您的查询时间变量设置为:00:03:45.210000

您将希望使用以下字符串而不是当前字符串。格式:

log.Query_Time = Duration.ToString("mm\\:ss\\.ff");

这会给你一个像03:45.21这样的输出,我想这就是你的目标。

你这里的问题是持续时间的格式,我假设这是一个TimeSpan对象。如果您的持续时间为3分45秒210毫秒,则使用您目前的数据,您的查询时间变量设置为:00:03:45.210000

您将希望使用以下字符串而不是当前字符串。格式:

log.Query_Time = Duration.ToString("mm\\:ss\\.ff");

这将为您提供一个类似03:45.21的输出,我想这就是您的目标。

为什么您要使用varchars作为时间?为什么不直接使用datetime并存储它呢?很明显,其中一项太长,调试它您能否显示UserActivity类定义、Duration变量定义/赋值,并在Query\u Time字段/属性中给出一个值的示例?我怀疑问题可能与查询时间有关。如果我有DateTime start=DateTime.Now-TimeSpan.FromMinutes2;,和DateTime end=DateTime.Now;,时间跨度持续时间=结束-开始;然后设置log.Query_Time=String.Format{0:mm:ss.ff},Duration.ToString然后log.QueryTime等于00:02:00.0030060.Query_Time等于00:00:00,这与开始和结束的字符数相同为什么u使用varchars作为时间?为什么不直接使用datetime并存储它呢?很明显,其中一项太长,调试它您能否显示UserActivity类定义、Duration变量定义/赋值,并在Query\u Time字段/属性中给出一个值的示例?我怀疑问题可能与查询时间有关。如果我有DateTime start=DateTime.Now-TimeSpan.FromMinutes2;,和DateTime end=DateTime.Now;,时间跨度持续时间=结束-开始;然后设置log.Query_Time=String.Format{0:mm:ss.ff},Duration.ToString然后log.QueryTime等于00:02:00.0030060.Query_Time等于00:00:00,这与开始和结束字符数相同
public class UserActivity
{
  public string UserEmail { get; set; }
  public string SQL_Query { get; set; }
  public string Query_Start { get; set; }
  public string Query_End { get; set; }
  public string Query_Time { get; set; }
}

static void Main(string[] args)
{
  UserActivity log = new UserActivity();
  DateTime start = DateTime.Now - TimeSpan.FromMinutes(2);
  DateTime end = DateTime.Now;
  TimeSpan Duration = end - start;

  log.UserEmail = "email@here.gov";
  log.SQL_Query = "exec FTSP_FTProblemsByCategory 5";
  log.Query_Start = String.Format("{0:hh:mm:ss}", start);
  log.Query_End = String.Format("{0:hh:mm:ss}", end);
  log.Query_Time = String.Format("{0:mm:ss.ff}", Duration.ToString());
}
log.Query_Time = Duration.ToString("mm\\:ss\\.ff");