1

I have a problem with MySqlParamters in C#. I will create a new entry in the database, but MySqlCommand writes only null-values.

    MySqlCommand see = new MySqlCommand("REPLACE INTO users (login, email) VALUES (@login,@email)",this.dbcontext);

            MySqlParameter p1 = new MySqlParameter("@login",MySqlDbType.VarChar,20);
            p1.Value = "Hello";

MySqlParameter p2 = new MySqlParameter("@email", "Dude");

            see.Parameters.Add(p1);
            see.Parameters.Add(p2);

            Console.WriteLine(p2.Value);

            see.ExecuteNonQuery();

The entry in my database is

login   email
------------------
null    null

What can I do?

Szymon
  • 41,313
  • 16
  • 90
  • 109
Nerospeed
  • 13
  • 2

2 Answers2

0

Doesn't the MySql connector use ? for parameters? (@ are user variables) - so:

using(var see = new MySqlCommand(
    "REPLACE INTO users (login, email) VALUES (?login,?email)",this.dbcontext))
{
    MySqlParameter p1 = new MySqlParameter("login",MySqlDbType.VarChar,20);
    p1.Value = "Hello";
    MySqlParameter p2 = new MySqlParameter("email", "Dude");
    see.Parameters.Add(p1);
    see.Parameters.Add(p2);
    see.ExecuteNonQuery();
}

or if you like some "dapper":

this.dbcontext.Execute(
    "REPLACE INTO users (login, email) VALUES (?login,?email)",
    new { login = "Hello", email = "Dude" }
);
Marc Gravell
  • 927,783
  • 236
  • 2,422
  • 2,784
-1

see this...

Find and Replace text in the entire table using a MySQL query MySQL Replace query http://dev.mysql.com/doc/refman/5.0/en/replace.html

Community
  • 1
  • 1
user2927075
  • 53
  • 2
  • 7