通过ADO.NET连接数据库存储过程

时间:2013-11-25 14:23:07

标签: c# sql-server parameters ado.net argumentexception

连接数据库期间的Hello我连接到数据库时遇到了一些错误(System.ArgumentException)

使用ADO.NET。

有一些复杂的参数设置

请检查以下编码。

            ObjectParameter objp = new ObjectParameter("30", typeof(String));

            Model.TestEntities1 mda = new Model.TestEntities1();
            var test = mda.GetUserNameByUserId(777, objp);

            foreach (var test1 in test)
            {
                MessageBox.Show(this, test1.ToString(), "Alter", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }

获取数据的点mda.GetUserNameByUserId(777,objp);

实际上我想发送一个参数777,但是ADO.NET自动生成了一个参数。

    public ObjectResult<GetUserNameByUserId_Result> GetUserNameByUserId(Nullable<global::System.Int32> userId, ObjectParameter userName)
    {
        ObjectParameter userIdParameter;
        if (userId.HasValue)
        {
            userIdParameter = new ObjectParameter("UserId", userId);
        }
        else
        {
            userIdParameter = new ObjectParameter("UserId", typeof(global::System.Int32));
        }

        return base.ExecuteFunction<GetUserNameByUserId_Result>("GetUserNameByUserId", userIdParameter, userName);
    }

实际输出用户名,我现在不需要发送。

无论如何,我尝试发送一些临时参数

并出错。

System.ArgumentExceptiojn:指定的参数名称“30”无效。参数名称必须以字母开头,并且只能包含字母,数字和下划线。

任何人都知道这个问题。

谢谢。

1 个答案:

答案 0 :(得分:0)

尝试将参数名称更改为UserName

ObjectParameter objp = new ObjectParameter("UserName", typeof(String));