C# 用ADO.NET连接数据库存储过程
您好,在连接数据库期间,我在连接数据库时出错(System.ArgumentException) 使用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.
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'…好的,我得到了一些与存储过程参数设置不匹配的东西。。我更改了存储过程,工作正常。谢谢大家。