2012-01-27 100 views
1

有没有办法从SqlCommand获取参数集合时CommandType = TextSqlCommand(CommandType文本)检索参数集合

例如:

string MyDinamicSql = @"SELECT * FROM USERS where USERName = @Param1 and [email protected]"; 
SqlCommand comand = connection.CreateCommand(); 
comand.CommandText = MyDinamicSql; 
comand.CommandType = System.Data.CommandType.Text; 

//Do something for fill comand.Parameters from MyDinamicSql... 

我想办法让一个参数采集与[@参数1,@参数2] ...我不知道SQL查询(它们是动态的),我想获取我的应用程序的参数,将它们创建为输入控件。

我不能这样做与SqlCommandBuilder.DeriveParameters(command),因为它只适用于存储过程。

谢谢!

+0

如何生成SQL字符串?它们是从代码构建还是来自用户? – 2012-01-27 18:43:08

+0

他们被写入没有地方参数名称的商店...: - /他们来自用户,我的应用程序不知道查询参数。 – 2012-01-27 18:55:41

+0

在delphi中,当它的引擎解析sql时,我有类似FetchParams(在ClientDataSet上)并执行此操作。但在C#中我没有发现任何喜欢它。 – 2012-01-27 19:07:54

回答

2

否 - 直到SQL Server解析命令,它只是一个字符串。

+0

好吧,有没有办法强制sql服务器解析我的命令文本来获取参数集合? – 2012-01-27 18:41:27

+0

SQL Server甚至不会尝试,除非你给它参数,对不起:( – egrunin 2012-01-27 21:14:21