BLL.dll中发生了'System.ArgumentException'类型的未处理异常

罗伯·格里森

因此,我有一个使用SQL连接和存储过程的3层应用程序,可将其添加到数据库中的表中。我已经在数据访问层中按如下所示设置了存储过程...

public bool CreateAccount(AccountModel newAccount)
    {
        bool retValue = false;
        try
        {
           using (SqlConnection cxn = new SqlConnection(cxnString))

            {
                SqlCommand cmd = new SqlCommand("spAddAccount", cxn);
                cmd.CommandType = CommandType.StoredProcedure;


                SqlParameter FirstNameParam = new SqlParameter("@FirstName", SqlDbType.NVarChar, 256);
                FirstNameParam.Value = newAccount.FirstName;
                SqlParameter SurnameParam = new SqlParameter("@Surname", SqlDbType.NVarChar, 256);
                SurnameParam.Value = newAccount.Surname;
                SqlParameter EmailParam = new SqlParameter("@Email", SqlDbType.NVarChar, 256);
                EmailParam.Value = newAccount.Email;
                SqlParameter PhoneParam = new SqlParameter("@Phone", SqlDbType.NVarChar, 256);
                PhoneParam.Value = newAccount.Phone;
                SqlParameter Address1Param = new SqlParameter("@Address2", SqlDbType.NVarChar, 256);
                Address1Param.Value = newAccount.Address1;
                SqlParameter Address2Param = new SqlParameter("@Address2", SqlDbType.NVarChar, 256);
                Address2Param.Value = newAccount.Address2;
                SqlParameter CityParam = new SqlParameter("@City", SqlDbType.NVarChar, 256);
                CityParam.Value = newAccount.City;
                SqlParameter CountyParam = new SqlParameter("@County", SqlDbType.NVarChar, 256);
                CountyParam.Value = newAccount.County;
                SqlParameter AccountTypeParam = new SqlParameter("@AccountType", SqlDbType.NVarChar, 256);
                AccountTypeParam.Value = newAccount.AccountType;
                SqlParameter InitialBalanceParam = new SqlParameter("@InitialBalance", SqlDbType.NVarChar, 256);
                InitialBalanceParam.Value = newAccount.InitialBalance;
                SqlParameter OverdraftLimitParam = new SqlParameter("@OverdraftLimit", SqlDbType.NVarChar, 256);
                OverdraftLimitParam.Value = newAccount.OverdraftLimit;
                SqlParameter AccountNumberParam = new SqlParameter("AccountNumber", SqlDbType.Int, 4);
                AccountNumberParam.Direction = ParameterDirection.Output;

                cmd.Parameters.Add(FirstNameParam);
                cmd.Parameters.Add(SurnameParam);
                cmd.Parameters.Add(EmailParam);
                cmd.Parameters.Add(PhoneParam);
                cmd.Parameters.Add(Address1Param);
                cmd.Parameters.Add(Address2Param);
                cmd.Parameters.Add(CityParam);
                cmd.Parameters.Add(CountyParam);
                cmd.Parameters.Add(AccountNumberParam);
                cmd.Parameters.Add(InitialBalanceParam);
                cmd.Parameters.Add(OverdraftLimitParam);
                cmd.Parameters.Add(AccountNumberParam);

                cxn.Open();
                cmd.ExecuteNonQuery();
                cxn.Close();

           }
        }
        catch (Exception)
        {

            throw;
        }
        return retValue;
    }
}

但是在运行引用我的逻辑层的程序时出现此错误。错误信息`

我尝试cmd.Parameters.Clear()在执行查询之前和之后都使用方法,但这无济于事。

根本没有设置其他连接或SQL命令,这是唯一的连接或SQL命令。

我自己以及恢复在线搜索后都无法解决。

谢谢

这是在业务逻辑层中启动异常的地方。

namespace BLL
{
    public class bllAccountManager
    {
        public bool CreateAccount(AccountModel newAccount)
        {
            bool retValue = false;

            dalAccountManager dal = new dalAccountManager();
            try
            {
                retValue = dal.CreateAccount(newAccount);
            }
            catch (Exception ex)
            {

                throw;
            }
            return retValue;
        }
    }
}
米海·卡拉科斯(Mihai Caracostea)

AccountNumberParam参数已添加两次。例外是一种自我解释,只需要找到罪魁祸首。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

错误:mscorlib.dll中发生了类型为'System.UnauthorizedAccessException'的未处理异常

错误:System.Windows.Forms.dll中发生了类型为'System.BadImageFormatException'的未处理异常

WebDriver.dll中发生类型为'System.InvalidOperationException'的未处理异常

VimService55.XmlSerializers.dll中发生类型为'System.StackOverflowException'的未处理异常

mscorlib.dll中发生了'System.ComponentModel.Win32Exception'类型的未处理异常

在C#中从十进制到十六进制的错误“在mscorlib.dll中发生了'System.FormatException'类型的未处理的异常”

从文本框写入sql server 2012时,System.Data.dll中发生了类型为'System.InvalidOperationException'的未处理异常

VB中的错误:language.exe中发生了类型为'System.IndexOutOfRangeException'的未处理异常

为什么我在System.Core.dll中发生类型为'System.ArgumentNullException'的未处理异常

发生类型为'System.NullReferenceException'的未处理异常

生成报告会导致在system.windows.forms.dll中发生类型为'system.stackoverflowexception'的未处理异常

System.Data.dll中发生了'System.ArgumentException'类型的未处理异常

Windows窗体应用程序数据库:“ System.Data.dll中发生了'System.ArgumentException'类型的未处理的异常”

发生类型为'System.NullReferenceException'的未处理异常

EntityFramework.dll中发生类型为'System.ArgumentException'的异常,但未在用户代码中处理

在System.Drawing.dll中发生了'System.ArgumentException'类型的未处理异常,用于灰度

System.Data.Linq.dll中发生了类型为'System.Data.SqlServerCe.SqlCeException'的未处理异常

错误:System.Data.dll中发生了类型为'System.Data.SqlClient.SqlException'的未处理的异常

如何处理类型为'System.ArgumentException'的未处理异常?

Microsoft.WindowsAzure.Storage.dll中发生了类型为'System.StackOverflowException'的未处理异常

SetAccessControl提供错误,因为mscorlib.dll中发生类型为'System.UnauthorizedAccessException'的未处理异常

VisualStudio错误:System.Data.dll中发生了类型为'System.Data.SqlClient.SqlException'的未处理的异常

在application.exe中发生了'System.StackOverflowException'类型的未处理异常

错误消息:C#中的mscorlib.dll中发生了'System.FormatException'类型的未处理异常

mscorlib.dll 中发生了“System.Data.SqlClient.SqlException”类型的异常,但未在用户代码中处理

Windows 窗体“System.Data.dll 中发生类型为‘System.ArgumentException’的未处理异常”

MySql - System.Data.dll 中发生类型为“System.InvalidOperationException”的未处理异常

File.Copy,mscorlib.dll 中发生类型为“System.IO.IOException”的未处理异常

System.Data.dll 中发生类型为“System.AccessViolationException”的未处理异常