I am using dapper to insert to a database, have been looking at my code to find what has happened, could not find anything out of the ordinary.
The code works with the SELECT statement, but not when I do an insert I always get the error:
System.Data.SqlClient.SqlException: 'Must declare the scalar variable "@SKU".
When I remove the first parameter from the database, the class, the function and the procedure, I always get the same error for the first parameter.
public class Products
{
public string SKU;
public string Title;
public string ImageLink;
}
Using dapper function to insert:
public void insertItem(Products newProduct)
{
using (IDbConnection connection = new System.Data.SqlClient.SqlConnection(Helper.CnnVal("SellersDB")))
{
List<Products> dbnewProduct = new List<Products>();
dbnewProduct.Add(newProduct);
connection.Execute("dbo.Item_Insert @SKU, @Title, @ImageLink", dbnewProduct);
}
}
The procedure:
CREATE PROCEDURE [dbo].[Item_Insert]
@SKU nchar(10),
@Title nchar(100),
@ImageLink nchar(50)
AS
BEGIN
SET NOCOUNT ON;
insert into dbo.ProductsTable (SKU, Title, ImageLink) values (@SKU, @Title, @ImageLink);
END
The database:
CREATE TABLE [dbo].[ProductsTable] (
[SKU] NCHAR (10) NULL,
[Title] NCHAR (100) NULL,
[ImageLink] NCHAR (50) NULL
);
The error happened on the excite line.