我的字符串包含引号;选择语句崩溃。
vm_TEXT_string = "Hello 'French' People";
vm_DataTable_SELECT_string = "[MyField] = '" + vm_TEXT_string + "'";
DataRow[] o_DataRow_ARRAY_Found = vco_DataTable.Select (vm_DataTable_SELECT_string);
我无法使用此语句:string filter =“[MyColumn]”+“LIKE'%”+ SearchWord +“%'”;
我找到了字符串格式:
DataRow[] oDataRow = oDataSet.Tables["HasDiseas"].Select ( string.Format ( "DName='{0}'", DiseasListBox.SelectedItem.ToString () ) );
是否有建议选择带引号的字符串?
谢谢你, 符文
答案 0 :(得分:1)
对于数据表,您可以用两个引号替换单引号:
string.Format("DName='{0}'", DiseasListBox.SelectedItem.ToString().Replace("'", "''")
但请记住,您不应该使用实际的SQL查询来执行此操作。恶意软件可能滥用该技术向您的数据库发送不受欢迎的查询。
另一个选择是做这样的事情:
IEnumerable<DataRow> rows = oDataSet.Tables["HasDiseas"].Where(r => r["DName"] == DiseasListBox.SelectedItem.ToString());
答案 1 :(得分:0)
这取决于您的数据库引擎,但通常情况下,您可以使用两个单引号('
)来转义单引号(''
)。
尽管如此,最好的方法是使用parametrized query,它将为您执行特殊字符转义。