小编mon*_*tro的帖子

EF例外:字符串或二进制数据将被截断.该语句已终止.?

我已经阅读了很多与此问题相关的帖子,但找不到答案.我正在尝试将大量数据从Excel加载到SQL Server中.成千上万的记录.我得到了这个例外:

字符串或二进制数据将被截断.该语句已终止.

显然,某些值超出了数据库中的字段大小.该错误来自SQL Server AFIK.


我的问题 - 我怎么可能知道什么记录和什么字段值导致了这个?

EF异常中没有具体细节,除了我提到的那个.

任何帮助表示赞赏.

有人要求代码片段,但实际上非常简单,问题不在于代码:

// employees is a List<Employee> collection loaded from Excel
using (var context = new Entities())
{
    employees.ForEach(e => context.Employee.AddObject(e));
    context.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)

此外,使用DbEntityValidationException(仅在Entity Framework 5.0中可用)的建议方法不起作用,catch块未捕获异常.

try
{
    ImportData();
}
catch (DbEntityValidationException ex)
{
    foreach (var item in ex.EntityValidationErrors)
    {
        //...
    }
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,我找到的唯一解决方案是使用SQL Server Profiler,并定义要监视的以下事件:

在此输入图像描述

在此输入图像描述

现在我可以看到电子邮件太长了.

c# sql-server entity-framework exception

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

在将jQuery更新到1.9.0后,不显眼的Ajax停止工作

我刚刚将jQuery和jQuery UI更新为:jquery-1.9.0.min.js和jquery-ui-1.9.2.min.js

并且...我所有不引人注意的Ajax调用(Ajax.ActionLink,Ajax.BeginForm)都停止正常工作 - 它们在新页面中打开结果,而不是更新现有的div.

当我的页面加载时,我在Firebug中收到此javascript错误:

在此输入图像描述

代码当然没有改变,只是使用Nuget更新了jQuery脚本.

有人经历过同样的问题吗?

jquery asp.net-mvc-3 unobtrusive-ajax

37
推荐指数
4
解决办法
3万
查看次数

无法通过附加到Chrome在VSCode中进行调试

我在launch.json中有默认配置,该站点在端口8080上运行

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "chrome",
            "request": "launch",
            "name": "Launch Chrome against localhost",
            "url": "http://localhost:8080",
            "webRoot": "${workspaceRoot}"
        },
        {
            "type": "chrome",
            "request": "attach",
            "name": "Attach to Chrome",
            "port": 9222,
            "webRoot": "${workspaceRoot}"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但是,当我单击调试按钮时,我收到此错误:

无法连接到目标:连接ECONNREFUSED 127.0.0.1:9222

在此输入图像描述

问题1:为什么VSCode在创建这个json时分配端口9222

这个端口有什么特别之处,MS决定把它放在这个launch.json中?

问题2:我需要改变什么来使事情有效.

Launch调试始终启动一个新窗口.我特别询问附加调试选项,以便它将在新选项卡中打开.

谢谢.

visual-studio-code

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

Twitter Bootstrap手风琴图标不会改变

我从bootstrap得到这个手风琴的东西.箭头图标指向下方.

在此输入图像描述

然后我点击Competency1,我得到(Competency1 icon up,Competency2 icon down):

在此输入图像描述

但是,如果我现在点击Competency2,我会得到(Competency1图标仍在运行,Competency2图标向上):

在此输入图像描述

这是引导程序中的错误,还是可以轻松修复?

谢谢.

accordion twitter-bootstrap

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

VSCode构建不起作用 - 没有定义构建任务.使用tasks.json文件中的'isBuildCommand'标记任务

我有全新的VSCode安装,以及这个基本的TypeScript应用程序.

第一次,当我想构建应用程序时,VScode需要生成tasks.json.

它早在很久以前就已经开始了.

今天我收到这个奇怪的消息

没有定义构建任务.使用tasks.json文件中的'isBuildCommand'标记任务.

我不记得以前看过这个消息.

在此输入图像描述

但是,好的,我单击配置构建任务,选择TypeScript任务,并生成tasks.json.

在此输入图像描述

但是,在我尝试现在构建之后会发生什么,Ctrl + Shift + B,我再次得到完全相同的消息

在此输入图像描述

有任何想法吗?谢谢.

顺便说一下,将此设置添加到tasks.json并不能解决问题.

在此输入图像描述

visual-studio-code

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

如何只在MVC3中的Ajax.BeginForm的OnFailure中显示错误消息?

我在我的MVC3应用程序中有这个简单的ajax表单,它发送电子邮件消息:

@using (Ajax.BeginForm("SendMessage", new AjaxOptions { 
    LoadingElementId = "wait", 
    OnSuccess = "loadMessages", 
    OnFailure = "showError" }))
{
    <input type="text" name="message" placeholder="Message" />
    <input type="submit" name="submit" value="Send" />
}
Run Code Online (Sandbox Code Playgroud)

如果操作无法发送消息,则会抛出异常.异常处理并显示在showError(error){} javascript函数中:

function showError(error) { 
    $("#error").text(error.responseText);
};
Run Code Online (Sandbox Code Playgroud)

问题是:error.responseText是整个错误页面html转储.

我只需要显示异常错误消息(MVC3中ex.Message中的任何内容).

"public ActionResult SendMessage(string message){}"的实现是无关紧要的.

我需要知道如何只在showError(错误)javascript处理程序中显示异常的消息.

谢谢一堆.

    [HttpPost]
    public ActionResult SendMessage(string message)
    {
        MailMessage mail = new MailMessage();
        SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
        mail.From = new MailAddress("sender@gmail.com");
        mail.Subject = "Some Message";
        mail.Body = message;
        mail.To.Add("recepient@gmail.com");
        SmtpServer.Send(mail);
        return null;
    }
Run Code Online (Sandbox Code Playgroud)

jquery ajax.beginform asp.net-mvc-3

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

在 VSCode 中调试 Angular 应用程序不再起作用

我遵循了官方文档: https://code.visualstudio.com/docs/nodejs/angular-tutorial#_debugging-angular

  • 使用创建了一个新的 Angular 应用程序ng new my-app
  • 在 VSCode 中打开应用程序。
  • 检查应用程序是否运行:ng serve。都好。
  • 已安装 Chrome 调试器
  • 按照说明添加launch.json配置
  • 按F5开始调试...

根据文档,它必须启动应用程序并达到我的断点。相反,我得到这个:

在此输入图像描述

我不知道为什么这不起作用。请指教。谢谢。

另外,为什么我们需要这个扩展?

看起来调试模块现在内置在 VSCode 中,并且执行完全相同的操作:

在此输入图像描述

但也不起作用(这里我禁用了扩展并使用了内置调试器):

在此输入图像描述

debugging visual-studio-code angular

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

YouTube API 配额,请解释一下。超出配额。怎么解决?

有人可以用简单的语言向我解释一下这些配额是如何运作的吗?

我知道哪里有类似的问题,但我想要与下面的屏幕截图相关的解释。

首先,我在 Google Dev Console 中打开 YouTube API 的配额页面。

但我不明白这些线是什么以及它们是如何工作的,为什么有几条线?

在此输入图像描述

例如,我试图提出一个像这样的简单请求

https://www.googleapis.com/youtube/v3/search?part=snippet&q=welcome&type=playlist&key=[MY_API-KEY]
Run Code Online (Sandbox Code Playgroud)

这会返回一个 json 响应:

{
  "error": {
    "code": 403,
    "message": "The request cannot be completed because you have exceeded your \u003ca href=\"/youtube/v3/getting-started#quota\"\u003equota\u003c/a\u003e.",
    "errors": [
      {
        "message": "The request cannot be completed because you have exceeded your \u003ca href=\"/youtube/v3/getting-started#quota\"\u003equota\u003c/a\u003e.",
        "domain": "youtube.quota",
        "reason": "quotaExceeded"
      }
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

所以,我认为它给了我一个错误,因为某个地方的配额=零,因为我只尝试发出此请求一次。

我应该怎样做才能消除这个错误并能够使用 API?

谢谢。

google-api youtube-api youtube-data-api google-developers-console

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

MVC3不引人注目的验证在IE中不起作用

我有MVC3应用程序,不引人注目的验证在FireFox中工作正常,但在IE中不起作用.

有什么想法吗?

UPDATE

似乎MVC3附带的jQuery不显眼验证库与我正在使用的jQuery 1.7.1(与引导模板一起提供)不完全兼容.在Firefox中工作,不适用于IE 8(我拥有的).

我开始将jQuery升级到它开始工作的版本(不确定是否其他东西不会破坏!).

当我达到1.8.1时,它终于奏效了.

我继续升级jQuery,当我到达1.9.1时 - 该死的东西再次停止工作:)

使用MVC3 jQuery不显眼验证的最新jQuery版本是1.8.3.

看起来这也是最新的jQuery版本,与MVC3 jQuery unobtrusive ajax库配合使用.

PS人们使用MVC3不引人注意的验证或ajax,不要使用高于v 1.8.3的jQuery.

unobtrusive-validation asp.net-mvc-3

8
推荐指数
2
解决办法
6816
查看次数

如何在剃刀视图中将@model指令更改为其他模型?

我有一个控制器,它创建一个模型并调用一个视图传递模型作为参数.在View中有一个@model指令,用于指定Model的类型.我想重用相同的View,但是从控制器传递不同的模型.是否可以在View中动态(或有条件地)更改@model指令?

例如,在我的控制器操作中:

var contactsModel = db.GetContacts();
var companiesModel = db.GetCompanies();
return (someCondition)? View(contactsModel):View(companiesModel);
Run Code Online (Sandbox Code Playgroud)

那么如何在View指令中定义@model以满足两个模型?我希望相同的视图根据传递的模型类型呈现信息.

谢谢.


更新:

谢谢,但我需要使用一个只有不同模型的常见视图.

这是可能的,这是如何做到的.

在视图中我定义:

@model IEnumerable<MvcApplication1.Models.IBaseInterface>
Run Code Online (Sandbox Code Playgroud)

在Model类中我定义:

public interface IBaseInterface { }

public class Contact: IBaseInterface {}

public class Company: IBaseInterface {}
Run Code Online (Sandbox Code Playgroud)

然后,在视图中我使用:

@if (Model is List<Contact>) {
    @foreach (var item in (List<Contact>)Model)
        { // Here item has type Contact }
}

@if (Model is List<Company>) {
    @foreach (var item in (List<Company>)Model)
        { // Here item has type Company }
}
Run Code Online (Sandbox Code Playgroud)

完美的工作:)

c# model razor asp.net-mvc-3

7
推荐指数
1
解决办法
4337
查看次数