由于字符(')导致的数据库插入问题

时间:2013-10-06 20:33:44

标签: c# sql asp-classic

如果您尝试在包含字符(')的数据库中插入字符串,则会遇到问题。

SQL ="Insert into mytable (name) values ('"&Request("name")&"') "

初学者的解决方案是

SQL ="Insert into mytable (name) values (Replace('"&Request("name")&"',"'","@") "
例如,

然后在检索此记录时必须将其更改回来。

但问题是,如果我有大量这些字段可能包含此字符('),那么我会为每个字段使用这个耗时的解决方案吗?!或者你们中的任何人都有智能和快速的解决方案?

1 个答案:

答案 0 :(得分:3)

编辑: 正如一些评论中所述,做出建议的方法可能如下:

首先,获取所有值并将它们存储在变量中。然后使用参数创建一个insert语句,将值插入数据库。

var value1 = //fetch what you want to insert
var value2 = //fetch what you want to insert

using (SqlConnection con = new SqlConnection(connectionString))
using (SqlCommand cmd = new SqlCommand("INSERT INTO myTable VALUES (@value1, @value2)", con))
{
    cmd.Parameters.AddWithValue("@value1", value1);
    cmd.Parameters.AddWithValue("@value2", value2);
    con.Open();
    try
    {
        cmd.ExecuteNonQuery();
    }
    catch (SqlException ex)
    {
        Console.WriteLine(ex.Message)
    }
}