Я пишу эту функцию в SQL:Вызов SQL функция C#
ALTER FUNCTION Fn_CheckBill
(
@image AS image,
@number AS nvarchar(50),
@date AS nchar(10)
)
RETURNS bit
AS
BEGIN
DECLARE @flag bit;
IF EXISTS (SELECT *
FROM tblBill
WHERE ((cast([Image] as varbinary(max)) = cast(@image as varbinary(max))) AND (Number = @number) AND ([Date] = @date)))
BEGIN
SET @flag = 0
END
ELSE
BEGIN
SET @flag = 1
END
RETURN @flag
END
И написать этот код в моем C# исходный код:
int flag;
try
{
objCommand = new SqlCommand("SELECT Fn_CheckBill(@image,@date,@number) AS int");
objCommand.CommandType = CommandType.Text;
objCommand.Parameters.AddWithValue("image", image);
objCommand.Parameters.AddWithValue("number", number);
objCommand.Parameters.AddWithValue("date", _Date);
using (objConnection = new SqlConnection(connenctString))
{
objConnection.Open();
objCommand.Connection = objConnection;
flag = int.Parse(objCommand.ExecuteScalar().ToString());
}
if (flag == 1)
{
return true;
}
else
{
return false;
}
}
catch
{
return false;
}
Но это бросить это исключение при выполнении: «Fn_CheckBill 'не является признанным именем функции.
Пожалуйста, помогите мне решить эту проблему :(
вы уверены, что вы подключили правильную базу данных в строке подключения –
@ SonerGönül Да Это работа –
'п?. text, 'text' и' image' будут удалены в будущей версии SQL Server. Избегайте использования этих типов данных в новых разработках и планируйте изменять приложения, которые в настоящее время их используют. Вместо этого используйте 'nvarchar (max)', 'varchar (max)' и 'varbinary (max)'. [См. Подробности здесь] (http://msdn.microsoft.com/en-us/library/ms187993.aspx) –