Ray*_*lex 2 c# sql sql-server string
相当简单的问题
我有一个类似于以下内容的SQL字符串:
query = "select * from table_name where name ='"+varName+"' and
date ='"+varDate+"' order by state desc";
Run Code Online (Sandbox Code Playgroud)
该varName中,varDate从另一个数据库的表中的前一个选择查询定义.他们的值可能包含':/和其他特殊字符.
有没有办法使用C#或SQL,我可以"转义"上面select语句中的varName,varDate的内容?
我宁愿不要隐藏特殊字符:)
编辑:
忘了包含 - 设置是MSSQL
您可以使用任何相当成熟的API对查询进行参数化.这种支持在ADO.NET中提供:
string query = "select * from table_name where name = @name and date = @date order by state desc";
using (SqlCommand cmd = new SqlCommand(query))
{
cmd.Parameters.Add("@name", name);
cmd.Parameters.Add("@date", date);
using (SqlDataReader reader = cmd.ExecuteReader())
{ ... }
}
Run Code Online (Sandbox Code Playgroud)