IsDBNull cannot give me the right result
Posted: Wed 05 Jun 2013 02:49
The issue is caused by a simple select statement. Simple code as following below:
My demo project you can get from https://dl.dropboxusercontent.com/u/527 ... tion2.zipx
Code: Select all
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Devart.Data.Oracle;
using System.Data;
namespace ConsoleApplication2
{
class Program
{
static string connString = "user id=yx_trunk_central;server=dev;Unicode=true;password=1122;";
static void Main(string[] args)
{
OracleDataReader _reader;
OracleCommand _cmd = new OracleCommand();
//clear table
Excute("delete from MYTABLE");
////insert
Excute("insert into MYTABLE(ID,FLG,ID1,ID2,time,name,time1,X,act,ks,kst,time2,time3,ex,lst,lst1,user2,psid,time4,sts,spsid,status,time5) values('5806C1FF6F02A04AAA9D2AD2260703BB',0,'54DF494826B3A0458A24F65B3FA428D8',2,to_date('2013-06-03','yyyy-mm-dd'),'XXX',to_date('2013-06-03','yyyy-mm-dd'),'63446F95376F3F49BAAC911060210F43','DE3577BEF4A4AC4DBF9DFAC0BADA9F8F','EFCD53F162326B4D87FB0939A1C21D31','81492B95AD6E244BA7ACA80440F5D35C',to_date('2013-06-03','yyyy-mm-dd'),to_date('2013-06-03','yyyy-mm-dd'),null,null,null,null,'F19DB655CBA30F4984F9B4E38DAC8174',to_date('2013-06-03','yyyy-mm-dd'),3,null,null,to_date('2013-06-03','yyyy-mm-dd'))");
#region select returned false ** it is not right
_cmd = new OracleCommand();
_cmd.CommandText = "select t0.time1,t0.act,t0.time5,t0.user2,t0.ex,t0.sts,t0.status,t0.ks,t0.ID,t0.X,t0.psid,t0.spsid,t0.lst1,t0.time3,t0.lst,t0.time4,t0.ID1,t0.time2,t0.ID2 from MYTABLE t0";
Console.WriteLine(_cmd.CommandText);
_cmd.Connection = new OracleConnection();
_cmd.Connection.ConnectionString = connString;
_cmd.Connection.Open();
_reader = _cmd.ExecuteReader(CommandBehavior.Default);
if (_reader.Read())
{
bool isNull = _reader.IsDBNull(3);
Console.WriteLine(isNull);
if (!isNull)
Console.WriteLine("result:"+_reader.GetString(3));
}
_cmd.Connection.Close();
#endregion
Console.WriteLine("\n********************************************************************\n");
#region select returned true ** it is right
_cmd = new OracleCommand();
_cmd.CommandText = "select t0.time1,t0.time5,t0.act,t0.user2,t0.ex,t0.sts,t0.status,t0.ks,t0.ID,t0.X,t0.psid,t0.spsid,t0.lst1,t0.time3,t0.lst,t0.time4,t0.ID1,t0.time2,t0.ID2 from MYTABLE t0";
Console.WriteLine(_cmd.CommandText);
_cmd.Connection = new OracleConnection();
_cmd.Connection.ConnectionString = connString;
_cmd.Connection.Open();
_reader = _cmd.ExecuteReader(CommandBehavior.Default);
if (_reader.Read())
{
bool isNull = _reader.IsDBNull(3);
Console.WriteLine(isNull);
if (!isNull)
Console.WriteLine("result:" + _reader.GetString(3));
}
_cmd.Connection.Close();
#endregion
}
static void Excute(string sql)
{
OracleCommand _cmd = new OracleCommand();
_cmd.CommandText = sql;
_cmd.Connection = new OracleConnection();
_cmd.Connection.ConnectionString = connString;
_cmd.Connection.Open();
_cmd.ExecuteNonQuery();
_cmd.Connection.Close();
}
}
}