小编LCJ*_*LCJ的帖子

AddWithValue参数为NULL时的异常

我有以下代码来指定SQL查询的参数.我使用时会遇到异常Code 1; 但是当我使用时工作正常Code 2.在Code 2我们检查null并因此检查if..else块.

例外:

参数化查询'(@ application_ex_id nvarchar(4000))SELECT E.application_ex_id A'需要参数'@application_ex_id',这是未提供的.

代码1:

command.Parameters.AddWithValue("@application_ex_id", logSearch.LogID);
Run Code Online (Sandbox Code Playgroud)

代码2:

if (logSearch.LogID != null)
{
         command.Parameters.AddWithValue("@application_ex_id", logSearch.LogID);
}
else
{
        command.Parameters.AddWithValue("@application_ex_id", DBNull.Value );
}
Run Code Online (Sandbox Code Playgroud)

  1. 你能解释一下为什么它无法从代码1中的logSearch.LogID值中获取NULL(但能够接受DBNull)吗?

  2. 有没有更好的代码来处理这个?

参考:

  1. 将null分配给SqlParameter
  2. 返回的数据类型因表中的数据而异
  3. 从数据库smallint到C#nullable int的转换错误
  4. DBNull有什么意义?

    public Collection<Log> GetLogs(LogSearch logSearch)
    {
        Collection<Log> logs = new Collection<Log>();

        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            connection.Open();

            string commandText = @"SELECT  *
                FROM Application_Ex E 
                WHERE  (E.application_ex_id = @application_ex_id …
Run Code Online (Sandbox Code Playgroud)

.net c# ado.net

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

ASP.Net MVC - 资源无法找到错误

我是ASP.Net MVC的新手.我刚刚在Visual Studio 2010中创建了一个MVC3项目.视图引擎是剃须刀.当我刚运行应用程序时,它在浏览器中给出了正确的结果.URL为http:// localhost:4163 /.然后我将"设置为起始页"应用于〜\ Views\Home文件夹中的Index.cshtml.然后当我运行应用程序时,url变为 http:// localhost:4148/Views/Home/Index.cshtml ,它说无法找到资源.我该怎么做才能纠正它?网址映射在哪里完成?

Global.asax文件:

using System.Web.Mvc;
using System.Web.Routing;

namespace TEST
{

public class MvcApplication : System.Web.HttpApplication
{
    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        filters.Add(new HandleErrorAttribute());
    }

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );

    }

    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();

        RegisterGlobalFilters(GlobalFilters.Filters);
        RegisterRoutes(RouteTable.Routes);
    }
    }
 }
Run Code Online (Sandbox Code Playgroud)

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

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

根据单击的提交按钮将表单发布到不同的MVC发布操作

我在用ASP.Net MVC 4.我在视图上有多个按钮..目前我调用相同的动作方法; 我正在区分使用name属性的单击按钮.

@using (Html.BeginForm("Submit", "SearchDisplay", new { id = Model == null ? Guid.NewGuid().ToString() : Model.SavedSearch }, FormMethod.Post))
{
    <div class="leftSideDiv">
        <input type="submit" id="btnExport" class="exporttoexcelButton" 
        name="Command" value="Export to Excel" />
    </div>

    <div class="pageWrapperForSearchSubmit">
        <input type="submit" class="submitButton" 
         value="Submit" id="btnSubmitChange" />
    </div>
}
Run Code Online (Sandbox Code Playgroud)

//行动

    [HttpPost]
    public ActionResult Submit(SearchCostPage searchModel, string Command)
    {
        SessionHelper.ProjectCase = searchModel.ProjectCaseNumber;

        if (string.Equals(Command, Constants.SearchPage.ExportToExcel))
        {

        }
   }
Run Code Online (Sandbox Code Playgroud)

质询

  1. 有没有办法在不同的按钮点击(没有自定义路由)指向不同的POST操作方法?
  2. 如果没有自定义路由,我们怎样才能使用自定义路由?

参考文献:

  1. Jimmy Bogard - 清理ASP.NET MVC中的POST

asp.net-mvc asp.net-mvc-4

55
推荐指数
3
解决办法
13万
查看次数

Eclipse C++:"程序"g ++"在PATH中找不到"

我在我的Windows 7(32位)中安装了gpp,如图所示.

在此输入图像描述

PATH变量气体g ++

"%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\cygnus\cygwin-b20\H-i586-cygwin32\bin\g++"
Run Code Online (Sandbox Code Playgroud)

还是eclipse显示错误:

"程序"g ++"在PATH中找不到".

怎么解决这个问题?

在此输入图像描述

c c++ eclipse g++

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

Page.IsValid如何运作?

我有以下代码RequiredFieldValidator.该EnableClientScript属性在验证控件中设置为"false".我也在浏览器中禁用了脚本.

我没有Page.IsValid在后面的代码中使用.不过,当我在文本框中提交没有任何价值时,我会得到error message.

根据@Dai的评论,我发现这可能是一个问题,如果有任何代码Page_Load在a中执行postback.不会抛出任何验证错误.

(但是,对于按钮单击处理程序,无需检查Page.IsValid)

if (Page.IsPostBack)
{
    string value = txtEmpName.Text;
    txtEmpName.Text = value + "Appended";
}
Run Code Online (Sandbox Code Playgroud)

  1. 为什么服务器端验证没有发生Page_Load
  2. 为什么我使用它时工作正常Page.IsValid
  3. 您能否提供一篇解释此文章的文章?(不是说 - 总是使用Page.IsValid;但是说明了什么是强制性使用场景Page.IsValid

更新1

请参阅ASP.NET验证器常见错误概念

Page.IsValid只有在之后Page.Validate()隐式调用的run方法之后才能访问Page_Load.如果您将所有逻辑保存在Page_Load事件处理程序中(非常不鼓励!),请Page.Validate()在检查之前调用Page.IsValid.

注意:建议不要保留所有逻辑Page_Load.如果按钮单击事件发生了某些事情,请将其移动到按钮单击事件处理程序.如果在下拉事件中发生某些事情,请将其移至下拉选定的项目更改事件处理程序.

更新2

看起来,我们需要添加If(Page.IsValid)button click,如果我们使用的是也Custom Validator与服务器端验证.请参阅CustomValidator不能正常工作.

注意:此处存在客户端验证问题:是否使用Page_IsValid或Page_ClientValidate()(对于客户端事件)

MARKUP …

asp.net validation

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

防止多次点击按钮

我有以下jQuery代码,以防止双击按钮.它工作正常.我Page_ClientValidate()用来确保只有在页面有效时才会阻止双击.[如果存在验证错误,则不应设置标志,因为没有回发到服务器的启动]

是否有更好的方法可以防止在页面加载之前再次单击按钮?

我们isOperationInProgress = yesIndicator是否可以仅在页面导致回发到服务器时设置标志 ?是否适合event在用户第二次点击按钮之前调用它?

注意:我正在寻找一种不需要任何新API的解决方案

注意:这个问题不重复.在这里,我试图避免使用Page_ClientValidate().此外,我正在寻找一个event我可以移动代码的地方,以便我不需要使用Page_ClientValidate()

注意:我的方案中没有涉及ajax.该ASP.Net表格将被同步提交给服务器.javascript中的按钮单击事件仅用于防止双击.表单提交是使用ASP.Net同步的.

现在的代码

$(document).ready(function () {
  var noIndicator = 'No';
  var yesIndicator = 'Yes';
  var isOperationInProgress = 'No';

  $('.applicationButton').click(function (e) {
    // Prevent button from double click
    var isPageValid = Page_ClientValidate();
    if (isPageValid) {
      if (isOperationInProgress == noIndicator) {
        isOperationInProgress = yesIndicator;
      } else {
        e.preventDefault();
      }
    } 
  });
});
Run Code Online (Sandbox Code Playgroud)

参考文献:

  1. 验证器导致双击检查的不正确行为
  2. 是否使用Page_IsValid或Page_ClientValidate()(用于客户端事件)

@Peter Ivan在上述参考文献中注意到:

重复调用Page_ClientValidate()可能会导致页面过于突兀(多个警报等).

javascript jquery

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

实体框架4.0:如何查看SaveChanges方法的SQL语句

我曾经使用context.Log跟踪LINQ to SQL生成的SQL语句,如Sql Server Query Visualizer所示 - 看不到生成的SQL查询

context.Log = new OutputWindowWriter();
Run Code Online (Sandbox Code Playgroud)

对于EF,有什么类似的,像上面的方法一样容易吗?

.net c# entity-framework

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

Eclipse C++:无法解析符号'std'

我在TestExecute.cpp中收到此错误 -

"符号'标准'无法解决"

#include <iostream>
using namespace std;
Run Code Online (Sandbox Code Playgroud)

我刚刚在Eclipse(在Windows 7中)创建了一个可执行项目,如下所示.看来我正在选择一个不受支持的工具链.是这样吗?我已经安装了Cygwin,它可以在首选项中使用.

编辑:基于@RobertoWilko评论,删除行"using namespace std;"删除了错误.但是没有创建二进制文件."发射失败.未发现二进制".怎么纠正这个?

在此输入图像描述

在此输入图像描述

在此输入图像描述

在此输入图像描述

c++ eclipse eclipse-cdt

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

使用C#更好地搜索所有文件中的字符串

在参考了很多博客和文章之后,我已经达到了以下代码,用于在文件夹内的所有文件中搜索字符串.它在我的测试中运行良好.

质询

  1. 有没有更快的方法(使用C#)?
  2. 是否有任何方案会因此代码而失败?

注意:我测试了非常小的文件.文件数量也很少.

static void Main()
    {
        string sourceFolder = @"C:\Test";
        string searchWord = ".class1";

        List<string> allFiles = new List<string>();
        AddFileNamesToList(sourceFolder, allFiles);
        foreach (string fileName in allFiles)
        {
            string contents = File.ReadAllText(fileName);
            if (contents.Contains(searchWord))
            {
                Console.WriteLine(fileName);
            }
        }

        Console.WriteLine(" ");
        System.Console.ReadKey();
    }

    public static void AddFileNamesToList(string sourceDir, List<string> allFiles)
    {

            string[] fileEntries = Directory.GetFiles(sourceDir);
            foreach (string fileName in fileEntries)
            {
                allFiles.Add(fileName);
            }

            //Recursion    
            string[] subdirectoryEntries = Directory.GetDirectories(sourceDir);
            foreach (string item in subdirectoryEntries)
            {
                // Avoid "reparse points" …
Run Code Online (Sandbox Code Playgroud)

.net c# file-io

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

实体框架异常:无效的对象名称

我正在尝试使用Code First方法创建数据库.当我运行以下代码时,我收到以下异常.我定义的字段有什么问题吗?我们怎样才能克服这一点?

例外:

更新条目时发生错误.有关详细信息,请参阅内部异常

内在例外:

"无效的对象名称'dbo.Dinners'.

注意:我在数据库中没有这样的表(Dinners).该代码应该创建表.我只是给了连接字符串来识别EF Code First中提到的服务器:无法连接到SQL Server.我应该更改连接字符串吗?

连接字符串:

string connectionstring ="Data Source = .; Initial Catalog = LibraryReservationSystem; Integrated Security = True; Connect Timeout = 30";

LibraryReservationSystem数据库已经是现有数据库.它没有桌子.我期待EF创建表格.

我从一个正在运行的LINQ 2 SQL应用程序复制的连接字符串.我是否需要对其进行任何更改才能提供给EF?

在此输入图像描述

UPDATE

当我包含以下代码时,异常发生了变化.现在它说 - "无效的对象名称'dbo.Dinner'.".现在正在抱怨餐桌; 不是晚餐表.

    protected override void OnModelCreating(DbModelBuilder modelbuilder)
    {
        modelbuilder.Conventions.Remove<PluralizingTableNameConvention>();
    }
Run Code Online (Sandbox Code Playgroud)

原始代码

    static void Main(string[] args)
    {

        string connectionstring = "Data Source=.;Initial Catalog=LibraryReservationSystem;Integrated Security=True;Connect Timeout=30";

        using (var db = new NerdDinners(connectionstring))
        {
            var product = new Dinner { …
Run Code Online (Sandbox Code Playgroud)

.net c# entity-framework

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