如何以C#Windows形式提供动态SQL脚本?

问题描述 投票:0回答:1

我正在使用C#Windows窗体为我的项目开发应用程序。我有一个动态SQL脚本,请参考以下脚本:

我需要在C#中提供此动态SQL脚本:(命令部分)

`command.CommandType = CommandType.Text;

command.CommandText =???`

请帮助我。如果我通常给出我在@SQL部分中出现异常错误。`

Declare @Sql nvarchar(max)


 Set @Sql ='CREATE FUNCTION [dbo].geoid (@InStr VARCHAR(MAX))
RETURNS @TempTable TABLE
(id int not null)
AS
BEGIN

SET @InStr = @InStr + '',''
DECLARE @SP INT
DECLARE @VALUE VARCHAR(1000)
WHILE PATINDEX(''%,%'', @INSTR ) <> 0---(1,2,3,4,5,)

BEGIN

SELECT @SP = PATINDEX(''%,%'',@INSTR)
SELECT @VALUE = LEFT(@INSTR , @SP - 1)--=1
SELECT @INSTR = STUFF(@INSTR, 1, @SP, '''')--(2,3,4,5)
INSERT INTO @TempTable(id) VALUES (@VALUE)
END
RETURN
END
'
declare @xyz varchar(200)

Exec (@sql)

`

c# sql sql-server dynamic-sql
1个回答
0
投票

为什么要使用命令文本创建函数

您可以对动态查询执行以下操作

public void Test(){string commandText =“从tbl_T2H_Category中选择类别ID,类别IN(@ cat_1,@ cat_2 @ cat_3)”;

        SqlCommand command = new SqlCommand(commandText, connection);
        command.Parameters.Add("@cat1", SqlDbType.Varchar);
        command.Parameters["@cat1"].Value = "category1";
        command.Parameters.Add("@cat2", SqlDbType.Varchar);
        command.Parameters["@cat2"].Value = "category2";
        command.Parameters.Add("@cat3", SqlDbType.Varchar);
        command.Parameters["@cat3"].Value = "category3";
    }
© www.soinside.com 2019 - 2024. All rights reserved.