当前位置: 首页 > 面试题库 >

使用ADO .NET调用SQL函数

蒙经纶
2023-03-14
问题内容

我想在SQL Server中创建调用函数,该函数接收两个参数并返回一个整数。当我调用存储过程时,我使用以下代码:

    sqlcmd.CommandType = CommandType.StoredProcedure
    sqlcmd.CommandText = "PROCEDURE_NAME"

    sqlcmd.Parameters.Add(New SqlClient.SqlParameter("@param1", Utilities.NothingToDBNull(user)))
    sqlcmd.Parameters.Add(New SqlClient.SqlParameter("@param2", Utilities.NothingToDBNull(password)))
    da = New SqlClient.SqlDataAdapter()
    da.SelectCommand = sqlcmd
    table = New DataTable()
    da.Fill(table)

在这种情况下,我有一个由存储过程返回的表。如果我想使用返回标量值的函数而不是存储过程,会有什么变化?


问题答案:

您不能直接调用该函数,只是StoredProcedureText查询
),并且TableDirect是允许的。由于您已经接触过存储过程,因此为什么不创建一个具有该功能的过程呢?

在您的C#代码中,您可以使用ExecuteScalar命令对象的

sqlcmd.CommandType = CommandType.StoredProcedure
sqlcmd.CommandText = "PROCEDURE_NAME"
sqlcmd.Parameters.Add(New SqlClient.SqlParameter("@param1", Utilities.NothingToDBNull(user)))
sqlcmd.Parameters.Add(New SqlClient.SqlParameter("@param2", Utilities.NothingToDBNull(password)))

Dim obj as Object = sqlcmd.ExecuteScalar() 
' obj hold now the value from the stored procedure.

您的存储过程现在应该看起来像这样,

CREATE PROCEDURE PROCEDURE_NAME
    @param1 VARCHAR(15),
    @param2 VARCHAR(15)
AS
BEGIN
    SELECT function_name(@param1, @param2)
    FROM...
    WHERE....
END


 类似资料:
  • 问题内容: 我想在Winforms中编写一个小型应用程序,在其中我可以写一些单词,然后使用ADO.net将它们写到SQL数据库中。 当我想用一个占位符写一个字符串时遇到麻烦: 我的数据库中记录的是: 我该如何克服通过传输到我的数据库的C#更改字符串? 这是我的代码的一部分: 问题答案: 您使用参数化的sql。

  • 我有一个函数,它在PL/SQL中返回一个布尔值。我曾尝试直接获取那个布尔值,但没有成功,所以现在我试图将其转换为字符串(我不想修改数据库): 此代码在数据库中正常工作:

  • 问题内容: 我需要针对将返回零或一的数据库运行查询(检查是否存在特定条件)。我已获得审查的技术规范指出,我应该创建一个存储过程,该存储过程将返回单行,并带有称为“结果”的单列,该列将包含0或1的位值。我不确定存储过程将是最好的方法,但是不确定一点,所以我想请教您一些意见。我可以想到的两个选择是: 1:创建一个SQL标量值函数,该函数执行查询并返回一点。然后,可以使用“ TEXT” SqlComma

  • 问题内容: 所以我有一个功能可以检查预订表中有多少取消: 要在SQL中执行他,我使用: 我的结果是: 我的问题是有人可以帮助我在JAVA中调用该函数吗,我尝试过但没有运气。 问题答案: Java提供了这样的目的。 将打印与在pl / sql中相同的内容。根据文档, 创建一个CallableStatement对象以调用数据库存储过程。CallableStatement对象提供了用于设置其IN和OUT

  • 问题内容: 我想知道是否有可能不知道函数名称而是无论如何都要调用它并从中获取值。这使我进入了反射包,我已经很接近了,但是我不确定最后一步- 如果有的话。同样,如果我遗漏了一些明显的东西,请原谅我,这是我第一次尝试在Go中做任何事情,而不是进行设置。 当然,作为一种编译语言,不需要遍历所有东西来查找函数名称,我都知道它们,但这是我想看看是否有可能……我正在学习。 下面是代码。我真正想做的是在主行中提

  • 问题内容: 当用户单击链接时,我需要调用ColdFusion函数(存在于.cfm文件中)。我想使用jQuery做到这一点。我有一个jQuery片段,看起来像- 我对jQuery和AJAX都是新手,所以在这里听起来我很幼稚。我应该使用AJAX调用ColdFusion函数吗?诸如请求在服务器上执行特定功能之类的东西。 在这方面的任何帮助,表示赞赏。 干杯。 问题答案: 如果您的cfm中有多个功能(即使