Как я могу обновить свою локальную базу данных из веб-службы, если элемент не найден? - PullRequest
0 голосов
/ 21 марта 2011

Проект, над которым я работаю, включает базу данных и веб-сервис для источника данных. Этот вопрос, и у меня есть несколько, основан на идее, что если я введу номер продукта в textBox1, я хочу увидеть, есть ли уже номер в базе данных, если нет, я хочу, чтобы он запустил мой написанный код он переходит к веб-службе, получает данные и обновляет базу данных.

  1. Какой код следует использовать, чтобы проверить, является ли Product_ID нулевым или пустым

  2. Какой код мне нужно написать, чтобы, если Product_ID был нулевым или пустым, он вызывал код, который я уже написал, чтобы получить данные из веб-службы?

Мой код linq:

Test_Data_ClassDataContext db = new Test_Data_ClassDataContext();
            var q = from p in db.Product_Masters
                    where p.Product_ID.Equals(textBox1.Text)
                    select p;

кража из чужих идей Я пытаюсь проверить на ноль, если ноль, запустить код веб-службы, если не ноль, отправить его в datagridview для отображения.

If (q == null)
{
    Somehow call the other code so it takes textBox1 and get the data from the service
}

else
{
    dataGridView1.DataSource = q;
}

Предыстория: я новичок в c #, когда-то давно я играл с vb6, и поэтому для меня c # - это не только изучение нового языка, но и изучение ходьбы, не говоря уже о том, что я никогда не был хорошим программистом vb6 ,

Ответы [ 3 ]

8 голосов
/ 21 марта 2011

q никогда не будет нулевым.

Значением выражения запроса является объект, представляющий запрос .Это не результаты запроса .

Если вы хотите знать, «есть ли у этого запроса какие-либо результаты», тогда скажите «q.Any ()».

1 голос
/ 21 марта 2011

Поскольку linq to sql использует отложенное выполнение до тех пор, пока не будет вызван GetEnumerator(), необходимо выполнить первый запрос.

var result = q.ToList();

if (result.Count == 0)
{
  //Somehow call the other code so it takes textBox1 and get the data from the service
}
else
{
  dataGridView1.DataSource = result;
}

Теперь, когда вы вызвали запрос, вы можете просто проверить, есть ли результаты, если нет, вы можете просто позвонить в веб-службу.

0 голосов
/ 21 марта 2011

То, что вы также хотите знать, это: «Как я называю веб-сервис?».

Это тема сама по себе: В VS это легко сделать, добавив ссылку на сервис (либо веб-сервис)Справочник по службам ASMX или Справочник по услугам для службы WCF.

Я предлагаю поискать в Google информацию по любым предметам и как их различать.

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