2015-07-15 4 views
0

У меня есть запрос (гипотетический пример ниже)Проверить вставила ли запись

if not exists(select productID from Products where supplierID=3)insert into Products(productName, price) values('Socks', 23) 

То, что я пытаюсь сделать, это вставить запись в таблицу Products, если нет какой-либо другой записи существующих с той же supplierID. Запрос, который у меня выше, отлично работает. То, что я хотел бы сделать после выполнения этого запроса, состоит в том, чтобы извлечь productID, если запись была найдена и использовать ее для вставки записи в другую таблицу, скажем invoices. Я пытаюсь сделать это с count, который не очень поможет, как так. (Всегда разрешается в else заявлении.

int count=query.ExcecuteNonQuery(); 
if(count==1){ 
    return "found"; 
} 
else{ 
    return "not found"; 
} 

Любой, кто может помочь с эффективным решением для этого?

UPDATE

Так что я попробовал это в Management Studio

declare @row int if not exists(select productID from Products where supplierID=3)insert into Products(productName, price) values('Socks', 23) select @[email protected]@rowcount select @rows as rows 

Когда я запускаю этот запрос в студии управления она возвращает 0, если нет строка была вставлена ​​и 1, если строка была вставлена, однако, когда я пытаюсь выполнить репликацию запроса в моем коде и alertrows, он отображает 0 каждый раз. Почему это может быть?

+3

Почему вы не используете сущность framework? –

+0

Возможный дубликат http://stackoverflow.com/q/5228780/1513471 –

+0

@LeandroSoares Я передаю переменные из ajax. Это то, как я это делал до сих пор. Если у вас есть более эффективный метод, пожалуйста, поделитесь –

ответ

1

Возможно, вы можете попробовать с @@ ROWCOUNT = 0, а затем вставить в другую таблицу. Он возвращает 0, если ваш запрос не находит ни одной строки. Но вы должны использовать его сразу же после запроса, поскольку он хранит информацию только для последнего выполненного запроса.

Я не уверен, что это может вам помочь, но я постараюсь решить эту ситуацию на этом пути ...

+0

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

+0

Этот запрос помог мне в некоторой степени. Я, наконец, придумал способ сделать это, хотя мне понадобилось немного кода и времени, чтобы понять это. Поэтому я буду отмечать это как ответ. –

Смежные вопросы