我已经阅读了很多与此问题相关的帖子,但找不到答案.我正在尝试将大量数据从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,并定义要监视的以下事件:


现在我可以看到电子邮件太长了.
我刚刚将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脚本.
有人经历过同样的问题吗?
我在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调试始终启动一个新窗口.我特别询问附加调试选项,以便它将在新选项卡中打开.
谢谢.
我从bootstrap得到这个手风琴的东西.箭头图标指向下方.

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

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

这是引导程序中的错误,还是可以轻松修复?
谢谢.
我有全新的VSCode安装,以及这个基本的TypeScript应用程序.
第一次,当我想构建应用程序时,VScode需要生成tasks.json.
它早在很久以前就已经开始了.
今天我收到这个奇怪的消息
没有定义构建任务.使用tasks.json文件中的'isBuildCommand'标记任务.
我不记得以前看过这个消息.
但是,好的,我单击配置构建任务,选择TypeScript任务,并生成tasks.json.
但是,在我尝试现在构建之后会发生什么,Ctrl + Shift + B,我再次得到完全相同的消息
有任何想法吗?谢谢.
顺便说一下,将此设置添加到tasks.json并不能解决问题.
我在我的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) 我遵循了官方文档: https://code.visualstudio.com/docs/nodejs/angular-tutorial#_debugging-angular
ng new my-app。ng serve。都好。根据文档,它必须启动应用程序并达到我的断点。相反,我得到这个:
我不知道为什么这不起作用。请指教。谢谢。
另外,为什么我们需要这个扩展?
看起来调试模块现在内置在 VSCode 中,并且执行完全相同的操作:
但也不起作用(这里我禁用了扩展并使用了内置调试器):
有人可以用简单的语言向我解释一下这些配额是如何运作的吗?
我知道哪里有类似的问题,但我想要与下面的屏幕截图相关的解释。
首先,我在 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
我有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.
我有一个控制器,它创建一个模型并调用一个视图传递模型作为参数.在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# ×2
jquery ×2
accordion ×1
angular ×1
debugging ×1
exception ×1
google-api ×1
model ×1
razor ×1
sql-server ×1
youtube-api ×1