2013-11-25 70 views
0

连接数据库时出现错误连接数据库时出现了一些错误(System.ArgumentException)通过ADO.NET连接数据库存储过程

使用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

其实我的目的只有一个参数,但是当我生成的存储过程系统自动生成的两个参数,第二个代码,所以我只是尽量把任何数据。 –

+1

第二参数 “用户名” 实际上设置输出在存储过程ALTER PROCEDURE [DBO] [GetUserNameByUserId] \t - 添加的参数这里存储过程 \t用户ID INT, \t用户名的varchar(100)输出 AS –

+1

Eventhough它是输出,当我尝试调用存储过程系统读取两个参数以来,因为正在进行。所以我不知道如何在存储过程中删除模型浏览器 –

回答

0

尝试更改参数名称UserName

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