Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.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# 无法在Form.Load中使用sql查询_C#_Sql_Winforms_Entity Framework - Fatal编程技术网

C# 无法在Form.Load中使用sql查询

C# 无法在Form.Load中使用sql查询,c#,sql,winforms,entity-framework,C#,Sql,Winforms,Entity Framework,我目前正在努力提高SQL,目前我正在开发一个与数据库交互的小型Windows窗体程序。我正在使用实体框架来实现这一点。我刚刚遇到了一个我自己似乎无法解决的问题。我试图用数据库表中的项目填充列表框。为此,我打算在Form.Load期间访问表中的所有条目,然后将它们添加到列表框中。我遇到的问题是,由于某种原因,当我将SQL代码放入Form.Load函数时,它似乎无法执行。如果我创建一个按钮并在click事件中使用它,它将按预期工作,这就是为什么我有点困惑的原因。代码如下所示: 这项工作: p

我目前正在努力提高SQL,目前我正在开发一个与数据库交互的小型Windows窗体程序。我正在使用实体框架来实现这一点。我刚刚遇到了一个我自己似乎无法解决的问题。我试图用数据库表中的项目填充列表框。为此,我打算在Form.Load期间访问表中的所有条目,然后将它们添加到列表框中。我遇到的问题是,由于某种原因,当我将SQL代码放入Form.Load函数时,它似乎无法执行。如果我创建一个按钮并在click事件中使用它,它将按预期工作,这就是为什么我有点困惑的原因。代码如下所示:

这项工作:

    private void btnAdd_Click(object sender, EventArgs e)
    {
        dbConnection db = new dbConnection();

        var heroes = db.Hero.SqlQuery("Select * from Hero").ToList();
    }
这不起作用:

    private void AddMatchForm_Load(object sender, EventArgs e)
    {
        dbConnection db = new dbConnection();

        var heroes = db.Hero.SqlQuery("Select * from Hero").ToList();
    }

SQL语句看起来不错。但是您是否调用过AddMatchForm_加载?您将其命名为_Load并不意味着表单实际上已绑定到它。即使你是,你也没有用你的英雄变量做任何事情。因此,一旦离开AddMatchForm_加载方法,它就会消失

一旦你拥有了英雄,你会怎么做?就我所知,当它超出范围时,它将丢失,除非您丢失了一些代码。您所说的“不工作”是什么意思?您是否遇到异常?您是否尝试在load evnt上设置断点?在64位windows上的32位应用程序调试时,_load中的异常会被悄悄地吞没,在try/catch中换行,然后查看是否存在异常。@AlexK。好的,我添加了try/catch,现在我得到了异常。这就解释了。我之所以做此测试来强制执行此错误,是因为表的内容没有添加到我的列表框中,但我猜当时我的代码中的其他内容有问题。我尝试放置一个断点,它确实被调用。我在其中编写的其他代码按预期工作。在我提供的小代码片段中,我没有做任何事情,但我尝试在SQL语句中添加随机字符,这应该会产生异常,但没有这样做。如果我在单击事件中添加相同的随机字符,我确实会得到该异常