Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 Oracle查询在C中不起作用_C# 4.0_Oracle11g - Fatal编程技术网

C# 4.0 Oracle查询在C中不起作用

C# 4.0 Oracle查询在C中不起作用,c#-4.0,oracle11g,C# 4.0,Oracle11g,当我运行此代码时,它总是返回零,而当我在oracle sql客户端中运行此查询时,它返回1 var strSQL = string.Format("SELECT COUNT(*) FROM GANTNER.GAT_REASONS WHERE CODE ='{0}'", StatusCode); objCmd = new OracleCommand(strSQL, objConn); objCmd.CommandType = CommandType.Text; int val =

当我运行此代码时,它总是返回零,而当我在oracle sql客户端中运行此查询时,它返回1

 var strSQL = string.Format("SELECT COUNT(*) FROM GANTNER.GAT_REASONS WHERE CODE ='{0}'", StatusCode);    
 objCmd = new OracleCommand(strSQL, objConn);
 objCmd.CommandType = CommandType.Text;
 int val = int.Parse(objCmd.ExecuteScalar().ToString());
对于try,我删除了列名代码上的条件,它可以工作,但当我输入列名代码时,它不能工作,然后我尝试输入代码'CODE'所有不工作始终返回零,而它应该返回1,因为行存在。

尝试以下操作:

OracleCommand cmd = conn.createCommand();
// parametrized sql query
cmd.CommandText = "SELECT COUNT(*) FROM GANTNER.GAT_REASONS WHERE CODE = :status";
// add parameter for the query
cmd.Parameters.AddWithValue("status", StatusCode); 
int val = int.Parse(objCmd.ExecuteScalar().ToString());
试试这个:

OracleCommand cmd = conn.createCommand();
// parametrized sql query
cmd.CommandText = "SELECT COUNT(*) FROM GANTNER.GAT_REASONS WHERE CODE = :status";
// add parameter for the query
cmd.Parameters.AddWithValue("status", StatusCode); 
int val = int.Parse(objCmd.ExecuteScalar().ToString());
可能是字母大小写问题。请尝试UPPER/UCASE函数进行比较

var strSQL = string.Format("SELECT COUNT(*) FROM GANTNER.GAT_REASONS
              WHERE UCASE(CODE) ='{0}'", StatusCode.ToUpper());    

可能是字母大小写问题。请尝试UPPER/UCASE函数进行比较

var strSQL = string.Format("SELECT COUNT(*) FROM GANTNER.GAT_REASONS
              WHERE UCASE(CODE) ='{0}'", StatusCode.ToUpper());    


我已经尝试了参数查询,但仍然不起作用,因为列存在问题name@SOFUser什么问题?你有错误代码吗。StatusCode到底是什么?StatusCode=142,数据库中存在行,但返回的计数为零。在sql developer中,它返回行数1@SOFUser提交,再试一次,如果不起作用,请从sql developer复制粘贴您的精确查询。我已尝试使用参数查询,但它仍然不起作用,因为列存在问题name@SOFUser什么问题?你有错误代码吗。StatusCode到底是什么?StatusCode=142,数据库中存在行,但返回的计数为零。在sql developer中,它返回行数1@SOFUser提交,再试一次,如果不起作用,请从sql developer复制粘贴您的精确查询。这是数字字段吗?不需要用单引号包装值。它的字符串字段包含数值,我猜!代码是CHAR类型的。或者您通过SQL提示符插入了一些行,但尚未提交这些更改。这是数字字段吗?不需要用单引号包装值。它的字符串字段包含数值,我猜!代码是CHAR类型的。或者您已经通过SQL提示符插入了一些行,但尚未提交这些更改。