Используя ADO.NET, есть четыре варианта возврата информации из запроса SQL:
- Использование объекта DataSet для сбора возвращаемых строк и работы с этими строками в дополнение к возвращаемым значениям и возвращаемым параметрам.
- Использование объекта DataReader для сбора возвращаемых строк, перемещения по этим строкам, а также для сбора возвращаемых значений и возвращаемых параметров.
- Используйте метод ExecuteScalar для возврата значения из первого столбца первой строки результатов с возвращаемыми значениями и возвращаемыми параметрами. Это наиболее полезно с агрегатными функциями.
- Используйте метод ExecuteNonQuery для возврата только возвращаемых параметров и возвращаемых значений. Все возвращенные строки отбрасываются. Это наиболее полезно для выполнения запросов действий.
Это все методы, вызываемые из вашего командного объекта.
Существует множество различных способов облысения кошки, вы можете использовать выходные параметры, вы можете использовать ExecuteScalar, вы можете использовать возвращаемые значения или пустые наборы записей.
Вы должны иметь возможность что-то вроде следующего в вашем C #, чтобы получить возвращаемое значение из запроса
// add a new parameter, with any name we want - its for our own use only
SqlParameter sqlParam = com.Parameters.Add("@ReturnValue", SqlDbType.Int);
// set the direction flag so that it will be filled with the return value
myParm.Direction = ParameterDirection.ReturnValue;
Код выше фиксирует возвращаемое значение, которое вы можете установить по своему усмотрению, возможно, с 0 для существует и 1 для не существует.
If NOT Exists(SELECT * FROM ItemList WHERE ItemName='txtItemNama')
BEGIN
INSERT INTO ItemList (ItemName) VALUES('txtItemNamea')
Return 0;
END
ELSE
BEGIN
Return 1;
END
Однако с приведенным выше советом есть небольшая оговорка - я обычно либо использую ORM, такой как Linq-to-SQL или NHibernate, либо использую хранимые процедуры. Я нахожу встроенный SQL довольно громоздким. Так что, хотя мой ответ в целом должен быть надежным, вам, вероятно, потребуется продумать некоторые детали, чтобы он работал именно так, как вам нужно.