Я делаю пакетную вставку с использованием datatable, но не могу вставить запись в базу данных и DataAdapter.Update возвращает 0 значение.SqlDataAdapter.Update не вставлять запись
Вот мой DataTable
Вот функция для сохранения записи в DataTable:
public long SaveImportData(DataTable importDataTable, int userUUid)
{
try
{
long result = 0;
using (var sqlConnection = new SqlConnection(DBManager.ConnectionString))
{
using (var dataAdapter = new SqlDataAdapter())
{
dataAdapter.InsertCommand = new SqlCommand(ReferencePricingQueryConstants.usp_RP_IMPORT_DATA, sqlConnection);
dataAdapter.InsertCommand.CommandType = CommandType.StoredProcedure;
dataAdapter.InsertCommand.Parameters.Add("@P_PRODUCT", SqlDbType.NVarChar, 100, "PRODUCT");
dataAdapter.InsertCommand.Parameters.Add("@P_PRESENTATION", SqlDbType.NVarChar, 200, "PRESENTATION");
dataAdapter.InsertCommand.Parameters.Add("@P_COUNTRY", SqlDbType.NVarChar, 30, "COUNTRY");
dataAdapter.InsertCommand.Parameters.Add("@P_PRICE_TYPE", SqlDbType.NVarChar, 30, "PRICE_TYPE");
dataAdapter.InsertCommand.Parameters.Add("@P_PRICE_CHANGE_DATE", SqlDbType.DateTime, 38, "PRICE_CHANGE_DATE");
dataAdapter.InsertCommand.Parameters.Add("@P_PRICE", SqlDbType.Float, 38, "PRICE");
dataAdapter.InsertCommand.Parameters.AddWithValue("@P_USER_UUID", userUUid);
dataAdapter.InsertCommand.UpdatedRowSource = UpdateRowSource.None;
dataAdapter.UpdateBatchSize = 100; ;
result = dataAdapter.Update(importDataTable);
return result;
}
}
}
catch (Exception ex)
{
_logger.Error(ex);
return 0;
}
Вот хранимая процедура:
ALTER PROCEDURE [dbo].[usp_RP_IMPORT_DATA]
(
@P_PRODUCT NVARCHAR(100),
@P_PRESENTATION NVARCHAR(200),
@P_COUNTRY NVARCHAR(30),
@P_PRICE_TYPE NVARCHAR(30),
@P_PRICE_CHANGE_DATE DATETIME,
@P_PRICE FLOAT,
@P_USER_UUID INT
)
AS
BEGIN
INSERT INTO [dbo].[IMPORTED_PRICES]
([PRODUCT],[PRESENTATION],[COUNTRY],[PRICE_TYPE],[PRICE_CHANGE_DATE],[PRICE],[CREATED_BY],[CREATED_TS])
VALUES(
\t \t \t @P_PRODUCT,
\t \t \t @P_PRESENTATION,
\t \t \t @P_COUNTRY,
\t \t \t @P_PRICE_TYPE,
\t \t \t @P_PRICE_CHANGE_DATE,
\t \t \t @P_PRICE,
\t \t \t @P_USER_UUID,
\t \t \t GETDATE()
\t \t )
END
Может кто-нибудь, пожалуйста, скажите мне, что я делаю неправильно?
что писать? Какая ошибка? – Artyom
А где же процедура? – Artyom
@Artyom: добавлен SP в сообщение и не дает никакой ошибки DataAdapter.Update возвращает значение 0. – Muntajib