微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

OleDbCommandParameter 值不会被 String.Empty 覆盖

如何解决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 举报,一经查实,本站将立刻删除。