表示 DB2Command 的参数以及该参数至 DataColumn 的映射(可选)。
System.Object
System.MarshalByRefObject
System.Data.Common.DbParameter
IBM.Data.DB2.DB2Parameter
[Visual Basic]
NotInheritable Public Class DB2Parameter
Inherits DbParameter
Implements IDbDataParameter, IDataParameter, ICloneable
[C#]
public sealed class DB2Parameter : DbParameter,
IDbDataParameter, IDataParameter, ICloneable
[C++]
public __gc __sealed class DB2Parameter : public
DbParameter, IDbDataParameter, IDataParameter, ICloneable
[JScript]
public class DB2Parameter extends DbParameter implements
IDbDataParameter, IDataParameter, ICloneable
这些参数名称不区分大小写。
[Visual Basic, C#] 以下示例将使用 DB2ParameterCollection 在 DB2DataAdapter 中创建 DB2Parameter 的多个实例。这些参数用来从数据库中选择数据并将该数据放入 DataSet 中。假定已使用适当的模式、命令和连接创建了 DataSet 和 DB2DataAdapter。
[Visual Basic]
Public Sub AddDB2Parameters()
' ...
' create myDataSet and myDataAdapter
' ...
myDataAdapter.SelectCommand.Parameters.Add(
"CategoryName", DB2Type.VarChar, 80).Value = "toasters"
myDataAdapter.SelectCommand.Parameters.Add(
"SerialNum", DB2Type.Integer).Value = 239
myDataAdapter.Fill(myDataSet)
End Sub 'AddDB2Parameters
[C#]
public void AddDB2Parameters()
{
// ...
// create myDataSet and myDataAdapter
// ...
myDataAdapter.SelectCommand.Parameters.Add(
"CategoryName", DB2Type.VarChar, 80).Value = "toasters";
myDataAdapter.SelectCommand.Parameters.Add(
"SerialNum", DB2Type.Integer).Value = 239;
myDataAdapter.Fill(myDataSet);
}
以下示例演示了在 DATE 列中使用字符串文字。可以将类似的方法用于 TIME 和 TIMESTAMP 列。
[Visual Basic]
Public Sub InsertDateDB2Parameters()
' ...
' create DB2Connection myConn
' ...
Dim myStatement As String = "INSERT INTO myTable (dateCol1, dateCol2, dateCol3) values (?, ?, ?)"
Dim myCommand As New DB2Command(myStatement, myConnection)
Dim param1 As New DB2Parameter("dateCol1", DB2Type.Date) ' Date for DATE column dateCol1
param1.Value = DateTime.Parse("06/23/1982 08:52:43 -5:00")
Dim param2 As New DB2Parameter("dateCol2", DB2Type.VarChar) ' VarChar for DATE column dateCol2
param2.Value = "1982-06-23-8:52:43.000000"
Dim param3 As New DB2Parameter("dateCol3", "1982-06-23-8:52:43.000000") ' String for DATE column dateCol3
myCommand.Parameters.Add(param1)) ' added parameter of type Date
myCommand.Parameters.Add(param2)) ' added parameter of type VarChar
myCommand.Parameters.Add(param3)) ' added parameter of type String
myCommand.ExecuteNonQuery()
End Sub ' InsertDateDB2Parameters
[C#]
public void InsertDateDB2Parameters()
{
// ...
// create DB2Connection myConn
// ...
DB2Command myCommand = myConnection.CreateCommand();
myCommand.CommandText = "INSERT INTO myTable (dateCol1, dateCol2, dateCol3) values (?, ?, ?)";
DB2Parameter param1 = new DB2Parameter("dateCol1", DB2Type.Date); // Date for DATE column 'dateCol1'
param1.Value = DateTime.Parse("06/23/1982 08:52:43 -5:00");
DB2Parameter param2 = new DB2Parameter("dateCol2", DB2Type.VarChar); // VarChar for DATE column 'dateCol2'
param2.Value = "1982-06-23-8:52:43.000000";
DB2Parameter param3 = new DB2Parameter("dateCol3", "1982-06-23-8:52:43.000000"); // String for DATE column 'dateCol3';
myCommand.Parameters.Add(param1)); // added parameter of type Date
myCommand.Parameters.Add(param2)); // added parameter of type VarChar
myCommand.Parameters.Add(param3)); // added parameter of type String
myCommand.ExecuteNonQuery();
假定过程特征符 addEmp 看起来为如下所示:
CREATE PROCEDURE addEMP(
IN empNo INTEGER DEFAULT 100,
IN empName VARCHAR(20) DEFAULT 'nothing',
INOUT empDeptNo INTEGER DEFAULT 2,
IN empAddr VARCHAR(100)DEFAULT 'San Jose, CA'
) ...
CALL addEmp (empNo => 5, empName => 'John', empDeptNo =>
2, empAddr => 'San Jose, CA')
您不能在同一查询中同时使用定位参数标记 (?) 和命名参数标记(例如,: paramEmpAddr)。
此类型的公用静态(Visual Basic 中的 Shared)成员对于多线程操作都是安全的。 不保证实例成员均为线程安全。