我有一个包含GUID的列的数据表。我想选择一个匹配特定GUID的行。我写了以下代码,
DataRow[] dRows = dtListSettings.Select("ListGUID = " + Convert.ToString(ViewState["GUID"]));
我正在比较的GUID是500c2b6a-a3a7-457f-90ed-c96768d91520。但我收到错误 - 语法错误:'c2b6a'运算符后缺少操作数。
有什么想法吗?
谢谢 NLV
答案 0 :(得分:6)
需要单引号:
类似的东西:
string.Format("ListGUID = '{0}'", Convert.ToString(ViewState["GUID"]));
答案 1 :(得分:2)
尝试用单引号括住select语句参数,如下所示:
DataRow[] dRows = dtListSettings.Select("ListGUID = '" + Convert.ToString(ViewState["GUID"]) + "'");
答案 2 :(得分:2)
这不适用于IN。例如。
DataRow[] dRows = dtListSettings.Select("ListGUID IN ('" + Convert.ToString(ViewState["GUID"]) + "')");
答案 3 :(得分:0)
我用两种方法解决了这个问题:
DataTable dt = new DataTable(); // your datatable with data
Guid gid = Guid.NewGuid(); // searching guid
DataRow[] dra = dt.Select("GuidColumn = '" + gid.ToString() + "'")
// OR
DataRow[] dra = dt.Select("GuidColumn = Convert('" + gid.ToString() + "', 'System.Guid')");
希望有用;)