我的代码跳过了一个函数

my code skips a function

我正在制作一个表格来为我的数据库创建一个项目,但我的代码没有执行任何功能

代码

public partial class Create : System.Web.UI.Page
    {
        Leraren leraar;

        protected void Page_Load(object sender, EventArgs e)
        {

                if (Request.Form["edit"] != null)
                {
                    create();
                }
        }
        private void create()
        {
            string naam = Request.Form["txt_naam"];
            string voornaam = Request.Form["txt_voornaam"];
            string email = Request.Form["txt_email"];
            string foto = Request.Form["txt_foto"];

            try
            {
                leraar = new Leraren();
                leraar.CreateTeacher(naam, voornaam, email, foto);

                Response.Redirect("../Wie.aspx");
            }
            catch (Exception ex)
            {
                Response.Write("U hebt wat lege velden");
            }


        }
    }

它从字段中获取信息,此时我的调试器停止 ps

 leraar.CreateTeacher(naam, voornaam, email, foto);

但它不执行该功能并直接转到此功能

Response.Write("U hebt wat lege velden");

完成后

catch (Exception ex)
{
    Response.Write("U hebt wat lege velden. Exception = " + ex);
}

这是结果

U hebt wat lege velden, Exception = System.IndexOutOfRangeException: An SqlParameter with ParameterName '@achternaam' is not contained by this SqlParameterCollection. at System.Data.SqlClient.SqlParameterCollection.GetParameter(String parameterName) at System.Data.SqlClient.SqlParameterCollection.get_Item(String parameterName) at WFtyas.Leraren.CreateTeacher(String naam, String voornaam, String email, String foto) in C:\Users\Tyas\Dropbox\School\'15-'16\Bestanden\programmeren 2\WFtyas\WFtyas\App_Code\Leraren.cs:line 77 at WFtyas.intranet.leraren.Create.create() in C:\Users\Tyas\Dropbox\School\'15-'16\Bestanden\programmeren 2\WFtyas\WFtyas\intranet\leraren\Create.aspx.cs:line 32

ps:抱歉我的英语不好

您的函数出现异常。您需要打印异常消息以调试错误,因为现在您正在吞下异常消息本身并丢失所有可能有用的信息。

将您的 catch 块更改为以下内容,以便将异常显示为错误消息的一部分:

catch (Exception ex)
{
    Response.Write("U hebt wat lege velden. Exception = " + ex);
}

在整个代码和函数中设置断点以进行调试并准确找出导致异常发生的原因。

针对更新后的问题进行编辑:

来自您的异常消息

An SqlParameter with ParameterName '@achternaam' is not contained by this SqlParameterCollection

这表示您正在执行 SQL 查询,并在查询中指定了 @achternaam,但您尚未将其作为参数添加到查询中。