找出SQLCommand的SQLParameters

时间:2011-10-11 07:56:53

标签: parameters sqlcommand

在过去的某个时刻,在我的VB6时代,我记得能够创建一个sql命令对象(不一定与今天的.NET风格相同),并自动填写sql参数。

这允许我做一些事情,比如只传递我绝对知道存在的参数,如果两个不同的客户端使用不同版本的数据库,我可以调用我的程序知道我仍然会得到一个有意义的响应。< / p>

这样的事情:

Dim cmd as SqlCommand
Set cmd = New SqlCommand(Connection)
cmd.CommandText = "MagicStoredProcedure"
cmd.CommandType = CommandType.StoredProcedure
If cmd.Parameters.Count > 0 Then
    If cmd.Parameters(0).Name = "@FirstParameter" Then
        cmd.Parameters("@FirstParameter").Value = someValue
    End If
End If
Dim r as Recordset
Set r = cmd.ExecuteRecordset()

我记得这样做,但我找不到自己的任何例子,并且尝试在.NET中执行此操作似乎根本不起作用。我看到的所有例子(我已经搜索了一段时间)都手动添加参数。

任何指针?

2 个答案:

答案 0 :(得分:0)

我找到了SQLCommandBuilder.DeriveParameters程序,它完全符合我的要求。

SQLCommandBuilder.DeriveParameters(cmd)
If cmd.Parameters.Contains("@FirstParameter") Then
    cmd.Parameters("@FirstParameter").Value = someValue
End If

不是我预期的地方。我希望将其烘焙到Command对象或Parameters集合中。

答案 1 :(得分:-1)

我过去曾使用过模板解决方案进行数据库访问,它使用映射到存储过程变量的类属性,并在需要时动态构建字符串。

Look here for an explanation

它与您在使用Visual Studio时将连接数据库中的存储过程和表添加到项目时的效果非常相似。

也许它可以指出你正确的方向。