2013-05-22 4 views
1
sqlComm.Connection = sqlConn; 

sqlComm.Parameters.AddWithValue("@Kullanici", Kullanici); 
sqlComm.Parameters.AddWithValue("@Sifre", Sifre); 
sqlComm.Parameters.AddWithValue("@Ad", Ad); 
sqlComm.Parameters.AddWithValue("@Soyad", Soyad); 
sqlComm.Parameters.AddWithValue("@Parametre", rndParametre); 

sqlComm.CommandText = "INSERT INTO Kullanici (EPosta,Sifre,Ad, Soyad,Aktif,Parametre, __DZamani) " + 
         " VALUES (@Kullanici,@Sifre,@Ad,@Soyad, 0,@Parametre,getdate()); SELECT RecID FROM Kullanici WHERE EPosta= "+ Kullanici; 


sqlConn.Open();    
SqlDataReader sqlRead = sqlComm.ExecuteReader(); 
while (sqlRead.Read()) 
{ 
    RecID = Convert.ToInt32(sqlRead["RecID"]); 
}    
sqlConn.Close(); 

je erreur:L'identifiant multi-partie « [email protected] » ne pouvait pas être lié comment corriger cette erreur ? avez-vous une idée?L'identifiant multi-partie « xxx » ne pouvait pas être lié

Répondre

6

C'est là la question est:

SELECT RecID FROM Kullanici WHERE EPosta= "+ Kullanici; 

Vous n'êtes pas en train de citer le champ VARCHAR/NVARCHAR, donc SQL pense que c'est un nom de table, qui ne peut pas trouver.

Vous devriez utiliser le même paramètre que vous ailleurs - il n'est pas clair pourquoi ici, et seulement ici vous concaténéz SQL. Cela vous ouvre à SQL Injection, donc vous devriez utiliser le paramètre que vous avez déjà:

SELECT RecID FROM Kullanici WHERE EPosta= @Kullanici"; 
+0

merci pour la réponse – Bip

Questions connexes