1

我正在测试 Oracle 数据库。我写了一些代码,但我的数据阅读器没有行,为什么?我的“carros”表有数据,我选择了所有数据,但似乎得到了一个空的结果集。

            string constr = "Data Source=localhost:1521/XE;User Id=System;Password=password;";
            OracleConnection con = new OracleConnection(constr);


            OracleCommand oracleCommand = new OracleCommand();

            oracleCommand.Connection = con;
            oracleCommand.CommandText = "select preco from carro";
            con.Open();
            OracleDataReader oracleDataReader = oracleCommand.ExecuteReader();


            string resultado = String.Empty;

            //My test, I got hasRows as false
            if (oracleDataReader.HasRows == false)
            {
                resultado = "no results";
            }        

           //never enters this loop.
            while (oracleDataReader.Read())
            {
                resultado += (string)oracleDataReader["preco"];

            }


            // Close and Dispose OracleConnection
            con.Close();
            con.Dispose();

            return resultado;
4

2 回答 2

0

如果在 ExecuteReader 之后 HasRows 为 false,则问题只是查询没有返回任何行,因此 Read 也将返回 false。可能 someValue 变量设置不正确。

根据您的描述,您的表似乎是carros在您的查询使用时命名的carro。尝试使用

oracleCommand.CommandText = "select preco from carros";
于 2019-09-09T01:57:18.053 回答
0

解决此问题的途径可能包括分散写入文件系统的日志记录命令。

System.IO.File.AppendAllText(@"\\server\\C\\log.txt", "put error message here" + "\r\n");

或用于打印变量:

System.IO.File.AppendAllText(@"\\server\\C\\log.txt", ex.ToString() + "\r\n");

此命令在整个脚本中的胡椒变体,以查看发生故障的位置并验证变量值。

于 2019-09-10T18:50:48.203 回答