Я пытаюсь просто вставить данные в таблицу на SQL Server из приложения winforms C#.Ошибка в SQL Server Вставить хранимую процедуру
В настоящее время, когда выполнение запроса я получаю сообщение об ошибке:
Incorrect syntax near 'soAddItems'
Вот мой insert
код класса обработки моих CRUD операции с базами данных:
Примечание: В качестве тестовых данных:
- ITEMNAME = "тест"
- skuNo = "A123"
- itemPrice = 2,99
- stockItemToAdd = 3
- itemPic = "C: \ Users \ Name \ Pictures \ pic.png" **
Код: Сервер хранимой процедуры
public virtual void AddItem(string itemName, string skuNo, double itemPrice, int stockAmountToAdd, string itemPic)
{
using (SqlConnection open = new SqlConnection(connectionString))
{
SqlCommand insertCommand = new SqlCommand("soAddItems", open);
open.Open();
insertCommand.Parameters.Add("@itemName", SqlDbType.NChar).Value = itemName;
insertCommand.Parameters.Add("@skuNo", SqlDbType.VarChar).Value = skuNo;
insertCommand.Parameters.Add("@itemPrice", SqlDbType.Decimal).Value = itemPrice;
insertCommand.Parameters.Add("@instockAmount", SqlDbType.BigInt).Value = stockAmountToAdd;
insertCommand.Parameters.Add("@lastSold", SqlDbType.DateTime).Value = DateTime.Today;
insertCommand.Parameters.Add("@itemPic", SqlDbType.NChar).Value = itemPic;
//***** Error on the execute*****
insertCommand.ExecuteNonQuery();
};
}
SQL :
ALTER PROC [dbo].[soAddItems]
@itemName nchar,
@skuNo varchar,
@itemPrice float,
@instockAmount bigint,
@lastSold dateTime,
@itemPic varchar
AS
BEGIN
INSERT INTO items (itemName, skuNo, itemPrice, instockAmount, lastSold, itemPic)
VALUES (@itemName, @skuNo, @itemPrice, @instockAmount, @itemPic)
END
Может ли кто-нибудь сказать мне, где я иду не так?
Ваш тип команды должен быть StoredProcedure, нет? Кроме того, [почему ваши параметры nchar и varchar не указывают длину] (http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/09/bad-habits-to-kick-declaring-varchar-without- length.aspx)? –