2009-02-13 5 views
0

Quelqu'un m'aidera s'il vous plaît en modiant ce code. Quand je récupère la valeur de connexion par appel de procédure stockée, j'obtiens ce message d'erreur "procédure ou fonction 'GetUserLogin' attend le paramètre '@UserName', qui n'a pas été fourni." Voici mon code:Besoin d'aide dans les données de vue de procédure stockée

public int GetLogin(string UserName, string Password) 
    { 
     SqlConnection con = new SqlConnection(str);  
     SqlDataAdapter da = new SqlDataAdapter("GetUserLogin", con); 
     SqlCommand com = new SqlCommand("GetUserLogin",con);  
     com.CommandType = CommandType.StoredProcedure; 
     DataSet ds = new DataSet(); 
     da.Fill(ds); 
     if (ds.Tables[0].Rows.Count > 0) 
     { 
      if ((ds.Tables[0].Rows[0].ItemArray[1].ToString() == UserName) && (ds.Tables[0].Rows[0].ItemArray[2].ToString() == Password)) 
      { 
       return 1; 
      } 
      else 
      { 
       return 0; 
      } 
     } 
     else 
     { 
      return -1; 
     } 
StoredProcedure: 
CREATE PROCEDURE GetUserLogin @UserName varchar(50) 
AS 
select UserName, 
     Password 
From Login where [email protected] 
    RETURN 

Merci, Masum

Répondre

0

Ajouter ce avant de remplir l'ensemble de données

cmd.Parameters.AddWithValue("UserName",UserName);

+0

Cela ne fonctionnera pas. Vous devez utiliser "@Username" – Aheho

+0

Non, sinon, j'aurais quelques milliers de lignes de code cassées qui ne sont sûrement pas cassées. – JoshBerke

1

Vous devez ajouter un paramètre UserName à votre commande. Faites quelque chose comme ceci après avoir créé votre commande, mais avant de l'exécuter:

com.Parameters.Add("@UserName", SqlDbType.VarChar, 50); 
com.Parameters["@UserName"].Value = UserName; 
Questions connexes