Проект .net CLR сообщает: «Не удалось найти хранимую процедуру» - PullRequest
0 голосов
/ 07 сентября 2011

Я очень новичок в .net и во всех технологиях Microsoft для разработчиков.Я работаю над проектом CLR.Я просто хочу сохранить строку и ее хэш в базе данных (MS SQL Server).Я создал хранимую процедуру в VS 2010. Когда я запускаю тестовый SQL-скрипт, он говорит: «Не удалось найти хранимую процедуру».Код выглядит следующим образом: Хранимая процедура

using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;


public partial class StoredProcedures
 {
    [Microsoft.SqlServer.Server.SqlProcedure]
    public static void CDA_hashSProc()
    {
        using (SqlConnection connection = new SqlConnection("context connection=true"))
        {
            connection.Open();
            SqlCommand cmd = new SqlCommand("CDA_HashTest", connection);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@data", SqlDbType.VarChar, 4000);
            cmd.Parameters["@data"].Value = "Hello";
            cmd.Parameters.Add("@hashdata", SqlDbType.VarChar, 4000);
            Security.Hash hash = new Security.Hash();
            cmd.Parameters["@hashdata"].Value = (SqlString)hash.shaHash("Hello World");
            SqlDataReader dr = cmd.ExecuteReader();
            dr.Close();
       }
    }

};

USE [NWebED]
GO
/****** Object:  StoredProcedure [dbo].[CDA_HashTest]    Script Date: 09/07/2011 11:36:36 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:      <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[CDA_HashTest] 
    -- Add the parameters for the stored procedure here
    @data varchar(max),
    @hashdata varchar(max)
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;
    -- Insert statements for procedure here
    insert into CDA_Encryption_Test (CDA_Document, CDA_Hash) values (@data, @hashdata)  
END

ОШИБКА: не удалось найти хранимую процедуру 'dbo.CDA_hashSProc'.

Пожалуйста, помогите.

Большое спасибо

Варуна

Ответы [ 2 ]

0 голосов
/ 07 сентября 2011

вам нужно зарегистрировать сборку в SQL, чтобы она стала там доступной

смотрите здесь http://msdn.microsoft.com/en-us/library/ms190790.aspx

и, в частности, здесь http://msdn.microsoft.com/en-us/library/ms189524.aspx

0 голосов
/ 07 сентября 2011

Обычно эта ошибка вызвана опечаткой в ​​имени хранимой процедуры.Ошибка: не удалось найти хранимую процедуру 'dbo.CDA_hashSProc'.Я подозреваю, что на самом деле вы написали эту строку под тем местом, где вы открываете свое соединение, как:

...