1

在应用程序之前,我使用了一个函数。我将它添加到我的 sqlserver --> 数据库 --> 可编程性 ---> 函数 ---> Scalered-Value Function

在我使用的应用程序中,像这样:

         dbo.MyFunc(_txt.text);

但现在我的项目中需要这个功能。它的 mvc4 网站。可以这样使用吗?我应该在哪里添加这个功能?我当然喜欢 application ,但是 db.MyFunc() 在我的课堂上不认识。

所以,我的项目是 CodeFirst 。

4

2 回答 2

0

如果您只想直接访问此特定功能:

public Object MyFunc(String txt_text)
{
    Object result = null;

    String connectionstring = "DataSource=.\SQLEXPRESS;"
                            + "Initial Catalog=DEMO;"
                            + "Integrated Security=True"; // or whatever you use....
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        using (SqlCommand command = new SqlCommand("SELECT dbo.Myfunc(@p1)", connection))
        {
            command.CommandType = CommandType.Text;
            command.Parameters.AddWithValue("@p1", txt_text);
            result = command.ExecuteScalar();
        }
    }

    return result;
}

这将建立与数据库的连接并执行该标量值函数,然后将结果放入result. 这将任何其他数据库基础设施排除在外,只允许您直接调用您的 SQL 函数。

于 2013-08-07T15:17:09.633 回答
0

当您使用代码优先数据库方法时,代码更改将反映在 SQL Server 数据库中。所以你必须在 C# 中实现它
下面是一个例子。从如何:创建和运行 CLR SQL Server 用户定义函数中获得

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

public partial class UserDefinedFunctions
{
    public const double SALES_TAX = .086;

    [SqlFunction()]
    public static SqlDouble addTax(SqlDouble originalAmount)
    {
        SqlDouble taxAmount = originalAmount * SALES_TAX;

        return originalAmount + taxAmount;
    }
}
于 2013-08-07T15:05:49.080 回答