我正在制作一个表单来为我的数据库创建一个项目,但我的代码没有执行功能
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");
}
}
}
它从字段中获取信息,此时调试器停止
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:抱歉我的英文不好
答案 0 :(得分:2)
您的功能发生异常。您需要打印异常消息才能调试错误,因为您正在吞下异常消息本身并丢失所有可能有用的信息。
将catch块更改为以下内容,以便在错误消息中显示异常:
catch (Exception ex)
{
Response.Write("U hebt wat lege velden. Exception = " + ex);
}
在整个代码和函数中设置断点以进行调试,并准确找到导致异常发生的原因。
编辑以回应更新的问题:
来自您的异常消息
此SqlParameterCollection不包含带有ParameterName'@achternaam'的SqlParameter
这表示您正在执行SQL查询,并且在查询中指定了@achternaam
,但您尚未将其作为参数添加到查询中。