DataTable.Select () - Сравнение GUID - PullRequest
       8

DataTable.Select () - Сравнение GUID

0 голосов
/ 19 января 2010

У меня есть дата со столбцом, содержащим GUID. Я хочу выбрать строку, соответствующую определенному GUID. Я написал следующий код,

DataRow[] dRows = dtListSettings.Select("ListGUID = " + Convert.ToString(ViewState["GUID"]));

GUID, который я сравниваю, это 500c2b6a-a3a7-457f-90ed-c96768d91520. Но я получаю сообщение об ошибке - Синтаксическая ошибка: пропущен операнд после оператора 'c2b6a'.

Есть идеи?

Спасибо NLV

Ответы [ 4 ]

6 голосов
/ 19 января 2010

Нужна одна цитата:

Что-то вроде:

string.Format("ListGUID = '{0}'", Convert.ToString(ViewState["GUID"]));
2 голосов
/ 27 августа 2012

Это не работает для IN.Например,

DataRow[] dRows = dtListSettings.Select("ListGUID IN ('" + Convert.ToString(ViewState["GUID"]) + "')");
2 голосов
/ 19 января 2010

Попробуйте заключить параметр оператора select в одинарные кавычки, например:

DataRow[] dRows = dtListSettings.Select("ListGUID = '" + Convert.ToString(ViewState["GUID"]) + "'");
0 голосов
/ 17 июля 2016

Я решаю это двумя способами:

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')");

надеюсь, будет полезно;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...