来自Connection的希伯来语

时间:2014-12-20 06:53:47

标签: c# oledb sqlplus oledbconnection oledbcommand

  

我正在尝试使用oracle数据库来插入并选择希伯来字母   并且效果不佳。

     

我试过

Insert into mytable values ('היי');
     

结果是???而不是היי

     

有人可以帮助我吗

编辑:

现在我从DBA询问希伯来语选项之后我可以用sqlplus用希伯来语写一下

但现在从我的项目中它仍然写着???

我的代码是

OleDbConnection conn = Connect();
conn.Open();
OleDbCommand com = new OleDbCommand("Insert into mytable values ('היי')", conn);
com.ExecuteNonQuery();

仍然结果是???

1 个答案:

答案 0 :(得分:1)

我无法对此进行测试,因为我对您的数据库一无所知(甚至不知道您的列名),但您应该使用参数执行该命令:

    var testString = "היי"; // Do be aware that Visual Studio displays Hebrew text right-to-left, so the actual string is reversed from what you see.

    using (OleDbConnection conn = Connect())
    {
        conn.Open();
        using (OleDbCommand com = conn.CreateCommand())
        {
            // OleDbCommand com = new OleDbCommand("Insert into mytable values ('היי')", conn);
            com.CommandText = "Insert into mytable values (?)";
            com.Parameters.Add(new OleDbParameter { OleDbType = OleDbType.VarWChar }).Value = testString;
            com.ExecuteNonQuery();
        }
    }

另外,请不要忘记通过using声明处理您的一次性用品。

相关地,here是使用参数化查询修复与OracleCommand类似问题的报告。