2016-10-12 3 views
-2
public int getcid(string UserName) 
    { 
      SqlConnection con = new SqlConnection(strConnString); 
      con.Open(); 

      int js; 

      string query = "select Username from register_tab where Email='" + UserName + "' "; 
      sqlda = new SqlDataAdapter(query, con); 
      DataSet ds = new DataSet(); 
      sqlda.Fill(ds); 

      js = Convert.ToInt32(ds.Tables[0].Rows[0]["Username"].ToString()); 

      return (js); 

enter image description hereEingabezeichenfolge war nicht in einem korrekten Format

+1

Was ist Benutzername? Zeichenfolge, int, Ihr benutzerdefiniertes Objekt? – Badiparmagi

+2

Zusätzlich ist die * erste * Sache, die Sie beheben müssen, Ihre SQL Injection Attacke. Verwenden Sie parametrisierte Abfragen, * immer *. –

+0

Ich bekomme Benutzername von E-Mail-Adresse, wenn ich mich anmelde ..... und fügen Sie diesen Benutzernamen in Sitzung –

Antwort

1

Ändern Sie Ihre Methode, um diese und Check-out:

SqlConnection con = new SqlConnection(strConnString); 
      con.Open(); 
string js; 
string query= "select Username from register_tab where Email= @username"; 
SqlCommand cmd = new SqlCommand(query, con); 
cmd.Parameters.Add("@username",SqlDbType.VarChar, 50).Value = 
              UserName; 

using(SqlDataReader reader= cmd.ExecuteReader()) 
{ 
    while (reader.Read()) 
    { 
     js= reader["Username"].ToString(); 
    } 
} 

con.Close(); 
return js; 

Auch warum setzen Sie Ihren Benutzername Spalte in Ihrer Abfrage E-Mail? Und warum verwenden Sie DataSet, wenn Sie nur int zurückgeben möchten?

UPDATE: keine Konvertierung in int erforderlich.

+0

md.Parameters.Add ("@ Email", SqlDbType.NVarchar, 20) .Wert = UserName; –

+0

NVarchar show errorr –

+0

@AliHacter aktualisiert: cmd.Parameters.Add ("@ username", SqlDbType.NVarchar, 20) .Wert – Badiparmagi

Verwandte Themen