SqlCommand.Parameters SqlCommand.Parameters SqlCommand.Parameters SqlCommand.Parameters Property

定义

public:
 property System::Data::SqlClient::SqlParameterCollection ^ Parameters { System::Data::SqlClient::SqlParameterCollection ^ get(); };
[System.Data.DataSysDescription("DbCommand_Parameters")]
public System.Data.SqlClient.SqlParameterCollection Parameters { get; }
member this.Parameters : System.Data.SqlClient.SqlParameterCollection
Public ReadOnly Property Parameters As SqlParameterCollection

属性值

Transact-SQL 语句或存储过程的参数。The parameters of the Transact-SQL statement or stored procedure. 默认值为空集合。The default is an empty collection.

示例

下面的示例演示如何创建SqlCommand并将参数添加到SqlParameterCollectionThe following example demonstrates how to create a SqlCommand and add parameters to the SqlParameterCollection.

private static void UpdateDemographics(Int32 customerID,
    string demoXml, string connectionString)
{
    // Update the demographics for a store, which is stored 
    // in an xml column. 
    string commandText = "UPDATE Sales.Store SET Demographics = @demographics "
        + "WHERE CustomerID = @ID;";

    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        SqlCommand command = new SqlCommand(commandText, connection);
        command.Parameters.Add("@ID", SqlDbType.Int);
        command.Parameters["@ID"].Value = customerID;

        // Use AddWithValue to assign Demographics.
        // SQL Server will implicitly convert strings into XML.
        command.Parameters.AddWithValue("@demographics", demoXml);

        try
        {
            connection.Open();
            Int32 rowsAffected = command.ExecuteNonQuery();
            Console.WriteLine("RowsAffected: {0}", rowsAffected);
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
    }
}
Private Sub UpdateDemographics(ByVal customerID As Integer, _
    ByVal demoXml As String, _
    ByVal connectionString As String)

    ' Update the demographics for a store, which is stored 
    ' in an xml column.
    Dim commandText As String = _
     "UPDATE Sales.Store SET Demographics = @demographics " _
     & "WHERE CustomerID = @ID;"

    Using connection As New SqlConnection(connectionString)
        Dim command As New SqlCommand(commandText, connection)

        ' Add CustomerID parameter for WHERE clause.
        command.Parameters.Add("@ID", SqlDbType.Int)
        command.Parameters("@ID").Value = customerID

        ' Use AddWithValue to assign Demographics.
        ' SQL Server will implicitly convert strings into XML.
        command.Parameters.AddWithValue("@demographics", demoXml)

        Try
            connection.Open()
            Dim rowsAffected As Integer = command.ExecuteNonQuery()
            Console.WriteLine("RowsAffected: {0}", rowsAffected)

        Catch ex As Exception
            Console.WriteLine(ex.Message)
        End Try
    End Using
End Sub

注解

SQL Server Microsoft.NET Framework 数据提供程序不支持用于将参数传递到 SQL 语句或存储的过程调用的命令的问号 (?) 占位符CommandType.TextThe Microsoft .NET Framework Data Provider for SQL Server does not support the question mark (?) placeholder for passing parameters to a SQL Statement or a stored procedure called by a command of CommandType.Text. 在这种情况下,必须使用命名的参数。In this case, named parameters must be used. 例如:For example:

SELECT * FROM Customers WHERE CustomerID = @CustomerIDSELECT * FROM Customers WHERE CustomerID = @CustomerID

备注

如果在集合中的参数与要执行的查询的要求不匹配,则可能会导致错误。If the parameters in the collection do not match the requirements of the query to be executed, an error may result.

有关详细信息,请参阅配置参数和参数数据类型For more information, see Configuring Parameters and Parameter Data Types.

适用于

另请参阅