Problem z wiazaniem zmiennych przy mysql

0

Witam,
Nie moge dodac zmiennej wiazanej do zapytania... W ponizszym kodzie wartosc zwracana z bazy zawsze jest null, chociaz nie powinno tak byc. Jezeli zamiast parametru w zapytaniu wpisze na sztywno string ze zmiennej login to ofx wszystko dziala...
W jaki sposob powinienem wiazac ten parametr?

        public bool verifyLogin(string login, string pass)
        {
            bool result = true;
            string resPass = "";

            MySqlConnection conn = new MySqlConnection(this.connString);
            MySqlCommand cmd = conn.CreateCommand();
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = "select pass from users where login = @login";
            cmd.Parameters.AddWithValue("@login", login);

            try
            {
                conn.Open();
                string p = (string)cmd.ExecuteScalar();
                if (p == null)
                {
                    result = false;
                }
</email>
0

A spróbuj tak: cmd.Parameters.AddWithValue("login", login);

0
Marcin.Miga napisał(a)

A spróbuj tak: cmd.Parameters.AddWithValue("login", login);

Niestety juz probowalem i rowniez nie dziala.

0

Zobacz tak

MySqlConnection conn = new MySqlConnection(mySqlConnectionString);
string sqlString = "select pass from users where login = @login";
MySqlCommand Cmd = new MySqlCommand(this.connString, conn);
Cmd.Parameters.Add("@login", MySqlDbType.VarChar, 30); //Nie wiem jaki typ ustawileś w tabeli wiec wstaw odpowiedni 
Cmd.Parameters["@login"].Value = login
0
miross napisał(a)

Zobacz tak

MySqlConnection conn = new MySqlConnection(mySqlConnectionString);
string sqlString = "select pass from users where login = @login";
MySqlCommand Cmd = new MySqlCommand(this.connString, conn);
Cmd.Parameters.Add("@login", MySqlDbType.VarChar, 30); //Nie wiem jaki typ ustawileś w tabeli wiec wstaw odpowiedni 
Cmd.Parameters["@login"].Value = login

Niestety tez nie pomaga...
najdziwniejsze jest, ze cos takiego dziala

cmd.CommandType = CommandType.Text;
cmd.CommandText = @"select pass from users where login = '" + login + @"'";
0

Jaki jest typ pola login w Twojej bazie?

0
miross napisał(a)

Jaki jest typ pola login w Twojej bazie?

Oba pola login i pass sa typu VARCHAR(45)

0

Dziwne, testowałem to i działa poprawnie, jedyna roznica to to ze mam baze MSSQL.

Daj moze zamiast @login np @param

0

Zmienilem na inna nazwe i nie pomaga. Zreszta wczoraj tez juz probowalem z @, bez @, itd. Nie wiem, moze to wina connectora MySql...

0

Uzycie ?login zamiast @login moze pomoże

0

http://msdn.microsoft.com/en-us/library/yy6y35y8.aspx

zwroc uwage, ze omowione sa tylko przyklady procedur skladowanych oraz zapytan odbc. moze sprobuj tych drugich i parametry oznacz za ? i podawaj bez nazw, w kolejnosci wlasciwej.. szczerze mowiac nie pamietam czy parametry byly obslugiwane per-nazwa przy zapytaniach 'z palca'

0

szczerze mowiac nie pamietam czy parametry byly obslugiwane per-nazwa przy zapytaniach 'z palca'

Są obsługiwane.

Po wstawieniu przez AddWithValue debuguj program i przeczesz cały SqlCommand w poszukiwaniu zapytania jaki wygenerował.

1 użytkowników online, w tym zalogowanych: 0, gości: 1