C#string.Replace问题

Wil*_*lly 0 c# sql string replace

我有一个像这样的字符串:

string query = "INSERT INTO CUSTOMER (id, name, address, address2) VALUES(@id, @name, @address, @address2)"
Run Code Online (Sandbox Code Playgroud)

然后我@address用'Elm Street' 代替

query = query.Replace("@address", "'" + "Elm Street" + "'");
Run Code Online (Sandbox Code Playgroud)

结果变成:

INSERT INTO CUSTOMER (id, name, address, address2) VALUES(@id, @name, 'Elm Street', 'Elm Street'2)
Run Code Online (Sandbox Code Playgroud)

如何获得结果:

INSERT INTO CUSTOMER (id, name, address, address2) VALUES(@id, @name, 'Elm Street', @address2) ?
Run Code Online (Sandbox Code Playgroud)

Bro*_*ass 5

如果这是一个SQL查询你错了 - 你应该使用SqlParameter参数化你的查询,不需要字符串替换:

string query = "INSERT INTO CUSTOMER (id, name, address, address2) VALUES(@id, @name, @address, @address2)";

using (SqlCommand cmd = new SqlCommand(query, myConnection))
{
    cmd.Parameters.Add(new SqlParameter("@address", SqlDbType.NVarChar)).Value = "Elm Street";
    //add other parameters

    cmd.ExecuteNonQuery();
}
Run Code Online (Sandbox Code Playgroud)