Ошибка «Не удалось найти хранимую процедуру» при вызове из приложения C# - PullRequest
0 голосов
/ 07 января 2020

Я создал хранимую процедуру на SQL сервере и попытался вызвать ее из моего C# приложения, но получаю сообщение

Не удалось найти хранимую процедуру

Я уже испробовал все возможные решения из "не удалось найти хранимую процедуру"

Вот определение моей хранимой процедуры (успешно созданной)

CREATE PROCEDURE [dbo].TagSaveToDblogic 
    @epcid NVARCHAR(100),
    @antid INTEGER,
    @starttime DATETIME,
    @endtime DATETIME,
    @sigstr INTEGER,
    @locid INTEGER,
    @valid INTEGER
AS
BEGIN
    DECLARE @LAST_LOCID int

    SELECT @LAST_LOCID = [LAST_LOCATION]
    FROM [DocumentTracking].[dbo].[KAWS_CARIBONI_DT_TAGS] 
    WHERE TAG_ID = @epcid

    IF (@LAST_LOCID != @locid)
    BEGIN
        INSERT INTO [DocumentTracking].[dbo].[KAWS_CARIBONI_DT_TEER] (EPC_DOCUMENT_CODE, ANTENNA_ID, READ_START_TIMESTAMP, READ_END_TIMESTAMP, SIGNAL_STRENGTH, LOCATION_ID, VALID_ENTRY) 
        VALUES (@epcid, @antid, @starttime, @endtime, @sigstr, @locid, @valid)
    END
END

Вот скриншот таблицы SELECT from sysobjects, где type = 'P' и category = 0 https://ibb.co/x2vFQzw

Это мой полный код для вызова хранимой процедуры из C# application:

string connetionString = null;
connetionString = "Data Source=192.9.100.250;Initial Catalog=DocumentTracking;User ID=alstom;Password=";

System.Data.SqlClient.SqlConnection connection = new System.Data.SqlClient.SqlConnection(connetionString);
System.Data.SqlClient.SqlCommand command = new System.Data.SqlClient.SqlCommand("dbo.TagSaveToDblogic", connection);

command.CommandType = CommandType.StoredProcedure;

command.Parameters.AddWithValue("@epcid", row[2].ToString());
command.Parameters.AddWithValue("@antid", m_curInventoryBuffer.nCurrentAnt);
command.Parameters.AddWithValue("@starttime", m_curInventoryBuffer.dtStartInventory);
command.Parameters.AddWithValue("@endtime", m_curInventoryBuffer.dtEndInventory);
command.Parameters.AddWithValue("@sigstr", (Convert.ToInt32(row[4]) - 129));
command.Parameters.AddWithValue("@locid", 1);
command.Parameters.AddWithValue("@valid", 1);

connection.Open();
int result = command.ExecuteNonQuery();

Последняя строка кода, где я получаю сообщение об ошибке.

Пожалуйста, помогите мне устранить эту ошибку!

1 Ответ

0 голосов
/ 07 января 2020

Как отметили @DimitryTsoy и @ JeroenMostert

Добавление следующих утверждений помогло:

USE DocumentTracking
GO

DocumentTracking - это имя базы данных.

...