我正在使用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)
`
为什么要使用命令文本创建函数
您可以对动态查询执行以下操作
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";
}