2017-02-09 24 views
0

Для контекста я разрабатываю сайт бронирования. Одной из особенностей является способность регистрируемого пользователя видеть свои прошлые оговорки. Для этого я заполняю DataList с помощью TableAdapter.ASP.NET и C# - Запрос с инструкцией как исключение параметров исключения

Для достижения этой цели, я захватывая идентификатор пользователя, делая так:

var currentUser = Membership.GetUser(User.Identity.Name); Guid userID = (Guid)currentUser.ProviderUserKey;

И тогда, между прочим, что Guid к запросу:

viagem = new viagemTableAdapter(); 
viagem.GetDataByCliente(userID); 

Вот является DataSet: enter image description here

И запрос на GetDataByCliente выглядит следующим образом:

SELECT  id, destino, nrAdultos, nrCriancas, checkin, checkout, hotel, extra_transpHotel, extra_transpAerop, extra_almoco, extra_jantar, extra_espetaculo, preco 
FROM   viagem 
WHERE  (idCliente = @idCliente) 

Я попытался преобразовать ProviderUserKey в String для удобства, однако я не могу передать его запросу из-за того, что idCliente является UniqueIdentifier в таблице.

Об теории, это должно работать. Проблема заключается в том, каждый раз, когда я пытаюсь получить доступ к странице, это исключение:

enter image description here

Я не могу это объяснить, ни на что. Может ли кто-нибудь пролить свет на то, что я делаю неправильно?

+1

Можете ли вы показать нам код для 'метода GetDataByCliente'? – Hackerman

+0

Прошу прощения, я должен был сказать, что код GetDataByCliente является самим запросом. Это метод DataSet –

+1

Да, но где код для реализации метода. – Hackerman

ответ

0

Вы можете попробовать что-то вроде этого, чтобы получить идентификатор GUID в виде строки, и чем передать в виде строки парам к методу:

string userID= Membership.GetUser(User.Identity.Name).ProviderUserKey.ToString(); 

//For currently logged in user you could use without passing the User.Identity.Name; 

string userID= Membership.GetUser().ProviderUserKey.ToString(); 

viagem = new viagemTableAdapter(); 
viagem.GetDataByCliente(userID);