如何将空参数传递给 SQL 服务器查询。我有一个可以为空的 int 列的简单表。如果我传递一个 .NET 空值,我会收到一个 sql 错误。如果我通过 DBNull.Value,没有行匹配过滤器。有没有一种简单的方法可以在不使用 ISNULL 的情况下做到这一点。
OleDbConnection connection = new OleDbConnection();
connection.ConnectionString = ...;
connection.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = connection;
cmd.CommandText = "select * from myTable where myColumn = ?";
OleDbParameter parameter = cmd.Parameters.Add(null, OleDbType.Integer);
parameter.DbType = System.Data.DbType.Int32 ;
parameter.IsNullable = true;
parameter.Value = DBNull.Value; // no row returned
parameter.Value = null; // sql error
var reader = cmd.ExecuteReader();
...