OleDbCommandParameter 值不会被 String.Empty 覆盖

问题描述

我正在尝试通过 OleDb 使用准备好的插入将数据写入 oracle 表(具有单个 VARCHAR(100) 列),基本上直接使用来自 MS 的示例:

var connectionString = "provider=OraOLEDB.Oracle;data source=server;persist security info=True;password=pw;user id=userid;oledb.net=True;dbproviderfactory=System.Data.OleDb";
using (var conn = new OleDbConnection(connectionString))
{
    conn.open();

    var cmd = new OleDbCommand();

    cmd.Connection = conn;
    cmd.CommandText = "INSERT INTO TEST (COLUMN1) VALUES (?)";

    cmd.Parameters.Add("par1",OleDbType.VarChar,100);
    cmd.Prepare();

    cmd.Parameters[0].Value = "HelloWordl";
    cmd.ExecuteNonQuery();

    cmd.Parameters[0].Value = "1.23";
    cmd.ExecuteNonQuery();

    cmd.Parameters[0].Value = String.Empty;
    cmd.ExecuteNonQuery();
}

我希望表格中有三行,即

COLUMN1
你好世界
1.23

然而,第三行看起来很奇怪:

COLUMN1
你好世界
1.23
1.23o 世界

这是提供程序中的错误吗?检查参数 Value 属性会产生空字符串。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)