使用SQL函数格式化帐户信息?

时间:2011-10-03 22:12:34

标签: asp.net sql vb.net

我有一个SQL函数,我在显示函数中的VB.Net代码中调用。 SQL函数将格式化我的帐户数据,以包含表格中的以下结果。

表数据:“001000011121”(这是数据在格式化之前的结构类型) 因此数据表数据和vb属性将被称为Myaccount,HerAccount,ThisAccount。

一旦数据被拉出然后在VB.net代码中格式化,它将导致GridDisplay,如:“001.00.001.1121”

我在代码中拥有公共功能的方式是:

Public Funcion GetDisplay(_
ByVal dbBass as DataProvider_
,ByVal pps AS TMGDatarequestParms_
,By filter As IFilter_
) As Ilist

Dim strobe As String = CType(parms.OptionalParameters,  DataProvider).Database

Dim sql As BiGSqlBuilder(TABLE)
sql.Select = String.Format("ID, [{0}].dbo.GLForamtAcct(Myaccount) AS [Myaccount], [{0}].dbo.GLFormatAccount(HerAccount) AS [HerAccount], [{0}].dbo.GLFormatAccount(ThisAccount) AS [ThisAccount]", strobe)

我遗漏了一些返回代码,因为没有必要。我唯一关心的是如何在上面的VB.net代码中格式化SQL。我希望这是有道理的我对这整个抽象的东西都是新手。任何帮助都会非常感激,因为我很确定我上面的方法不起作用。

1 个答案:

答案 0 :(得分:0)

建议在更高层中实现显示代码,而不是使用此业务逻辑加重数据库负担。

听起来你是使用String.Format()在字符串中插入表名的字符串。实际上只有在执行跨数据库调用时才需要database.schema.object的语法。

如果您确实想使用SQL UDF来执行格式化,建议使用/制定SELECT语句,如:

 SELECT ID,
        dbo.GLFormatAccount(Acct1) AS Acct1,
        dbo.GLFormatAccount(Acct2) AS Acct2,
        dbo.GLFormatAccount(Acct3) AS Acct3
 FROM MyTable