我有疑问,当我从数据库中获取数据时,如果数据库中有一些引用的数据,例如 D`DUN。该数据被插入到数据库中。当我执行选择查询时:
Select city from glmast where glname='" + list_customer.Items[i].Value + "'
在 list_cutomer 中有一些数据,其中插入了一些数据,如 D`DUN,如引号。所以它给出了像未封闭的报价一样的错误。
所以,这将如何解决,因为并非所有字段都包含引号。
请帮帮我.. Mitesh
我有疑问,当我从数据库中获取数据时,如果数据库中有一些引用的数据,例如 D`DUN。该数据被插入到数据库中。当我执行选择查询时:
Select city from glmast where glname='" + list_customer.Items[i].Value + "'
在 list_cutomer 中有一些数据,其中插入了一些数据,如 D`DUN,如引号。所以它给出了像未封闭的报价一样的错误。
所以,这将如何解决,因为并非所有字段都包含引号。
请帮帮我.. Mitesh
在构建 SQL 查询时,您永远不应该使用字符串连接。您应该使用参数化查询。不仅您的代码会在您所描述的情况下中断,而且更糟糕的是,您的代码容易受到SQL 注入的攻击,如果您的应用程序落入恶意用户的手中,您的数据库将被破坏。
所以参数化的查询:
string sql = "SELECT city FROM glmast WHERE glname = @glname";
using (var conn = new SqlConnection("Some connection string"))
using (var cmd = conn.CreateCommand())
{
conn.Open();
cmd.Parameters.AddWithValue("@glname", list_customer.Items[i].Value);
using (var reader = cmd.ExecuteReader())
{
while (reader.Read())
{
// do something with the results
}
}
}