Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.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# 用ADO.NET连接数据库存储过程_C#_Sql Server_Parameters_Ado.net_Argumentexception - Fatal编程技术网

C# 用ADO.NET连接数据库存储过程

C# 用ADO.NET连接数据库存储过程,c#,sql-server,parameters,ado.net,argumentexception,C#,Sql Server,Parameters,Ado.net,Argumentexception,您好,在连接数据库期间,我在连接数据库时出错(System.ArgumentException) 使用ADO.NET 有一些复杂的参数设置 请检查下面的编码 ObjectParameter objp = new ObjectParameter("30", typeof(String)); Model.TestEntities1 mda = new Model.TestEntities1(); var test = mda.

您好,在连接数据库期间,我在连接数据库时出错(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);
    }
public ObjectResult GetUserNameByUserId(可为空的userId,ObjectParameter userName)
{
ObjectParameter用户IDParameter;
if(userId.HasValue)
{
userIdParameter=新的ObjectParameter(“UserId”,UserId);
}
其他的
{
userIdParameter=newObjectParameter(“UserId”,typeof(global::System.Int32));
}
返回base.ExecuteFunction(“GetUserNameByUserId”,userIdParameter,userName);
}
实际上用户名是我现在不需要发送的输出

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

还有一个错误

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

任何人都知道这个问题


谢谢。

尝试将参数名称更改为
UserName

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

实际上,我的目的只有一个参数,但当我生成存储过程时,系统会自动生成两个参数作为第二个代码,所以我只是尝试放置任何数据--在这里添加存储过程的参数UserId int,UserName varchar(100)output ase,即使它是输出,当我尝试调用存储过程时,系统从beinging开始读取两个参数。因此,我不确定如何在存储过程模型浏览器中删除,这听起来像您有一些东西,而且它正在执行Set 30='Fred'…好的,我得到了一些与存储过程参数设置不匹配的东西。。我更改了存储过程,工作正常。谢谢大家。