DataTable DataRow选择带引号的字符串

时间:2010-03-25 20:44:20

标签: .net datatable.select

我的字符串包含引号;选择语句崩溃。

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 () ) );

是否有建议选择带引号的字符串?

谢谢你, 符文

2 个答案:

答案 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,它将为您执行特殊字符转义。