0

У меня возникла проблема с выполнением хранимой процедуры в Silverlight 4/RIA. Единственное значение, которое я возвращаю, равно null. Я неправильно делаю код клиента и сервера?Silverlight 4: Запуск хранимой процедуры, которая возвращает строку

стороне клиента: Обслуживание

public ZipCodesDomainContext _ZipcodesDomainContext = new ZipCodesDomainContext(); 

     /// <summary> 
     /// Creates a new <see cref="MainPage"/> instance. 
     /// </summary> 
     public MainPage() 
     { 
      InitializeComponent(); 
      this.loginContainer.Child = new LoginStatus(); 
      LoadCity(); 
     } 
private void LoadCity() 
     { 
      txtCity.Text = _ZipcodesDomainContext.GetCityByZip(42071).Value; 
     } 

Домен:

public string GetCityByZip(int pZip) 
     { 
      return ObjectContext.sp_GetCityByZip(pZip).ToString(); 
     } 

Модель данных (При выборе хранимая процедура): alt text

хранимых процедур:

USE [ZIPCODES] 
GO 
/****** Object: StoredProcedure [dbo].[sp_GetCityByZip] Script Date: 08/23/2010 13:48:11 ******/ 
SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
-- ============================================= 
-- Author:  <Author,,Name> 
-- Create date: <Create Date,,> 
-- Description: <Description,,> 
-- ============================================= 
ALTER PROCEDURE [dbo].[sp_GetCityByZip] 
    @ZIP int 

AS 
BEGIN 
    -- SET NOCOUNT ON added to prevent extra result sets from 
    -- interfering with SELECT statements. 
    SET NOCOUNT ON; 

    -- Insert statements for procedure here 
    SELECT City FROM ZipCodes WHERE Zip = @ZIP 
END 

ответ

0

Что вы имеете в виду, что вы получаете null обратно?

Во-первых, ваша функция GetCityByZip возвращает string, что вы делаете в поле .Value, значение которого недействительным.

Если ваш получать null назад от хранимая процедура:

return ObjectContext.sp_GetCityByZip(pZip).ToString(); 

потерпит неудачу, потому что вы пытаетесь сделать ToString() на несуществующий объект.

Что такое ObjectContext? Вы используете Linq To SQL? В этом случае вы получите обратно набор результатов, которые должны иметь оболочку всех данных, так что вы могли бы сделать что-то вроде:

ObjectContext.sp_GetCityByZip(pZip).City; 

И тогда ваш другой вызов будет просто:

txtCity.Text = _ZipcodesDomainContext.GetCityByZip(42071); 

очистка его немного я мог бы выяснить, что такое точная проблема, но в текущем состоянии ваш вопрос меня смутил.

+0

-Возвращаемое заявление возвращало null, это то, что я имел в виду, чтобы вернуть null. -ObjectContext - это то, что используется в других функциях контекста домена. . Я попытаюсь добавить «.City». Благодарим за быстрый ответ! Извините, что вы и все за непонятный вопрос, новичок в услугах RIA и LINQ. –

+0

@ Redburn Я не использовал RIA, чтобы вы могли все исправить, я просто комментировал, основываясь на том, что я смог расшифровать из вопроса. :) – Kelsey

+0

Мой ответ: http://forums.silverlight.net/forums/p/197644/460711.aspx –