CEL_Payroll/Payroll.BO/Query Analyzer/NullHandler.cs

265 lines
5.7 KiB
C#
Raw Normal View History

2024-09-17 14:30:13 +06:00
using System;
using System.Data;
using System.IO;
using System.Drawing;
namespace Payroll.BO
{
#region Null Handler
public class NullHandler
{
private IDataReader _reader;
public NullHandler()
{
}
public static object GetNullValue(int Value)
{
if(Value<=0)
{
return null;
}
else
{
return Value;
}
}
public static object GetNullValue(DateTime Value)
{
if(DateTime.MinValue==Value)
{
return null;
}
else
{
return Value;
}
}
public static object GetNullValue(string Value)
{
if(Value.Length<=0)
{
return null;
}
else
{
return Value;
}
}
public NullHandler(IDataReader reader)
{
_reader = reader;
}
public IDataReader Reader
{
get{return _reader;}
}
public bool IsNull(int index)
{
return _reader.IsDBNull(index);
}
#region Default Null Values
public int GetInt32(int i)
{
return _reader.IsDBNull(i)? 0 : _reader.GetInt32(i);
}
public byte GetByte(int i)
{
return _reader.IsDBNull(i)? (byte)0 : _reader.GetByte(i);
}
public decimal GetDecimal(int i)
{
return _reader.IsDBNull(i)? 0 : _reader.GetDecimal(i);
}
public decimal GetDecimal(string sFieldName)
{
return (_reader[sFieldName]==DBNull.Value)? (decimal) 0 :Convert.ToDecimal(_reader[sFieldName]);
}
public long GetInt64(int i)
{
return _reader.IsDBNull(i)? (long) 0 : _reader.GetInt64(i);
}
public double GetDouble(int i)
{
return _reader.IsDBNull(i)? 0 : _reader.GetDouble(i);
}
public bool GetBoolean(int i)
{
return _reader.IsDBNull(i)? false : _reader.GetBoolean(i);
}
public Guid GetGuid(int i)
{
return _reader.IsDBNull(i)? Guid.Empty : _reader.GetGuid(i);
}
public DateTime GetDateTime(int i)
{
return _reader.IsDBNull(i)? DateTime.MinValue : _reader.GetDateTime(i);
}
public float GetFloat(int i)
{
return _reader.IsDBNull(i)? 0 : _reader.GetFloat(i);
}
public string GetString(int i)
{
return _reader.IsDBNull(i)? null : _reader.GetString(i);
}
public char GetChar(int i)
{
return _reader.IsDBNull(i)? '\0' : _reader.GetChar(i);
}
public short GetInt16(String sFieldName)
{
return (_reader[sFieldName]==DBNull.Value)? (Int16) 0 :Convert.ToInt16(_reader[sFieldName]);
}
public int GetInt32(String sFieldName)
{
return (_reader[sFieldName]==DBNull.Value)? (Int32) 0 :Convert.ToInt32(_reader[sFieldName]);
}
public byte GetByte(String sFieldName)
{
return _reader[sFieldName]==DBNull.Value? (byte)0 : Convert.ToByte(_reader[sFieldName]);
}
public long GetInt64(String sFieldName)
{
return (_reader[sFieldName]==DBNull.Value)? (Int64) 0 :Convert.ToInt64(_reader[sFieldName]);
}
public Double GetDouble(String sFieldName)
{
return (_reader[sFieldName]==DBNull.Value)? (Double) 0 :Convert.ToDouble(_reader[sFieldName]);
}
public bool GetBoolean(String sFieldName)
{
return (_reader[sFieldName]==DBNull.Value)? false :Convert.ToBoolean(_reader[sFieldName]);
}
public DateTime GetDateTime(String sFieldName)
{
return (_reader[sFieldName]==DBNull.Value)? DateTime.MinValue :Convert.ToDateTime(_reader[sFieldName]);
}
public char GetChar(String sFieldName)
{
return (_reader[sFieldName]==DBNull.Value)? '\0' : Convert.ToChar(_reader[sFieldName]);
}
public string GetString(String sFieldName)
{
return (_reader[sFieldName]==DBNull.Value)? (string) "" :Convert.ToString(_reader[sFieldName]);
}
public Image GetImage(String sFieldName)
{
try
{
byte[] imageData = null;
long byteSize =0;
byteSize = _reader.GetBytes(_reader.GetOrdinal(sFieldName), 0, null, 0, 0);
imageData = new byte[byteSize];
long bytesread = 0;
int curpos = 0, chunkSize=500;
while (bytesread < byteSize)
{
// chunkSize is an arbitrary application defined value
bytesread += _reader.GetBytes(_reader.GetOrdinal(sFieldName), curpos, imageData, curpos, chunkSize);
curpos += chunkSize;
}
byte[] imgData =imageData;
MemoryStream ms = new MemoryStream(imgData);
Image oImage=Image.FromStream((Stream)ms);
return oImage;
}
catch(Exception ex)
{
throw new Exception("Failed to get Image: " + ex.Message);
}
}
#endregion
#region Parameterized Null Value
public int GetInt32(int i, int valueIfNull)
{
return _reader.IsDBNull(i)? valueIfNull : _reader.GetInt32(i);
}
public byte GetByte(int i, byte valueIfNull)
{
return _reader.IsDBNull(i)? valueIfNull : _reader.GetByte(i);
}
public decimal GetDecimal(int i, decimal valueIfNull)
{
return _reader.IsDBNull(i)? valueIfNull : _reader.GetDecimal(i);
}
public long GetInt64(int i, long valueIfNull)
{
return _reader.IsDBNull(i)? valueIfNull : _reader.GetInt64(i);
}
public double GetDouble(int i, double valueIfNull)
{
return _reader.IsDBNull(i)? valueIfNull : _reader.GetDouble(i);
}
public bool GetBoolean(int i, bool valueIfNull)
{
return _reader.IsDBNull(i)? valueIfNull : _reader.GetBoolean(i);
}
public Guid GetGuid(int i, Guid valueIfNull)
{
return _reader.IsDBNull(i)? valueIfNull : _reader.GetGuid(i);
}
public DateTime GetDateTime(int i, DateTime valueIfNull)
{
return _reader.IsDBNull(i)? valueIfNull : _reader.GetDateTime(i);
}
public float GetFloat(int i, float valueIfNull)
{
return _reader.IsDBNull(i)? valueIfNull : _reader.GetFloat(i);
}
public string GetString(int i, string valueIfNull)
{
return _reader.IsDBNull(i)? valueIfNull : _reader.GetString(i);
}
public char GetChar(int i, char valueIfNull)
{
return _reader.IsDBNull(i)? valueIfNull : _reader.GetChar(i);
}
public short GetInt16(int i, short valueIfNull)
{
return _reader.IsDBNull(i)? valueIfNull : _reader.GetInt16(i);
}
#endregion
}
#endregion
}