2013-05-22 2 views
0

Я хочу знать, как я могу получить параметр моей хранимой процедуры. Я новичок в ASP.Net C# .. это моя хранимая процедура.Как получить значение из хранимой процедуры

ALTER procedure [dbo].[obtnCtUsuarios] 
    ((@nombre nvarchar (20)) 
AS 
    SELECT 
     id, idEmpresa 
    FROM 
     ctUsuarios 
    WHERE 
     nombre = @nombre 
    ORDER BY 
     idNombre DESC 

И здесь у меня есть ошибка, потому что я не знаю, как установить параметры.

public List<ctUsuarios> select_ALL_ctUsuarios() 
{ 
    List<ctUsuarios> LstctUsuarios = new List<ctUsuarios>(); 

    string storedProcedure = "obtnCtUsuarios"; 

    using (DbConnection con = Conexion.dpf.CreateConnection()) 
    { 
     con.ConnectionString = Conexion.constr; 

     using (DbCommand cmd = Conexion.dpf.CreateCommand()) 
     { 
      cmd.Connection = con; 
      cmd.CommandText = storedProcedure; 
      cmd.CommandType = CommandType.StoredProcedure; 

      con.Open();     

      using (DbDataReader dr = cmd.ExecuteReader()) 
      { 
       while (dr.Read()) 
       { 
        LstctUsuarios.Add(
          new ctUsuarios((int)dr["idUsuario"], 
           (string)dr["id"], 
           (string)dr["idEmpresa"])); 
       } 
      } 
     } 
    } 

    return LstctUsuarios; 
} 

Это мое сообщение и мой ExecuteNonQuery.

public class Conexion 
{ 
    public Conexion() 
    { } 

    public static string constr 
    { 
     get { return ConfigurationManager.ConnectionStrings["Conn"].ConnectionString; } 
    } 

    //Cliente 
    public static string Provider 
    { 
     get { return ConfigurationManager.ConnectionStrings["Conn"].ProviderName; } 
    } 

    public static DbProviderFactory dpf 
    { 
     get 
     { 
      return DbProviderFactories.GetFactory(Provider); 
     } 
    } 

    private static int ejecutaNonQuery(string storedProcedure, List<DbParameter> parametros) 
    { 
     int Id = 0; 

     try 
     { 
      using (DbConnection con = Conexion.dpf.CreateConnection()) 
      { 
       con.ConnectionString = Conexion.constr; 

       using (DbCommand cmd = Conexion.dpf.CreateCommand()) 
       { 
        cmd.Connection = con; 
        cmd.CommandText = storedProcedure; 
        cmd.CommandType = CommandType.StoredProcedure; 

        foreach (DbParameter param in parametros) 
         cmd.Parameters.Add(param); 

        con.Open(); 
        Id = cmd.ExecuteNonQuery(); 
       } 
      } 
     } 
     catch (Exception) 
     { 
      throw; 
     } 
     finally 
     { 
      //conection.close(); 
     } 

     return Id; 
    } 

Может кто-нибудь помочь мне получить параметры? tHx

+1

это не Asp-классический – Alexan

+0

Взгляните на Связанных ссылки справа от вашего поста, тоже. Они могут оказаться полезными. –

ответ

1

cmd.Parameters.Add(literalFromSproc, SqlDbType.VarChar).Value = будет делать то, что вы хотите. Если вы говорите, что у вас есть парам в вашем sproc под названием @Name, вы бы сделали - cmd.Parameters.Add("@Name", SqlDbType.VarChar).Value = "evan";

Есть также похожие варианты, такие как AddWithValue, которые будут работать. Проверьте документы here

3
cmd.Parameters.AddWithValue("@nombre", value); 

Это как добавить параметр к вашей команде базы данных, которая является то, что я думаю, что вы просите.

Edit:

using (DbConnection con = Conexion.dpf.CreateConnection()) 
{ 
    con.ConnectionString = Conexion.constr; 

    using (DbCommand cmd = Conexion.dpf.CreateCommand()) 
    { 
     cmd.Connection = con; 
     cmd.CommandText = StoredProcedure; 

     // here is good 
     cmd.Parameters.AddWithValue("@nombre", yourParamValue); 
     cmd.CommandType = CommandType.StoredProcedure; 

     con.Open(); 
+0

plx вы можете написать код, чтобы увидеть его, кто вы только это и были :) – user2152373

+1

@ user2152373 Вы используете его там, где вы создали свой объект SqlCommand в этом среднем блоке кода. Добавьте параметр перед тем, как открыть соединение. См. Мое редактирование. – Yatrix

+0

THX за помощь :) srry для того, чтобы спросить, что им новичок :) !! но мне это очень помогает :) – user2152373

Смежные вопросы