initial commit
This commit is contained in:
154
App_Code/SQLExtensions.cs
Normal file
154
App_Code/SQLExtensions.cs
Normal file
@@ -0,0 +1,154 @@
|
||||
using Microsoft.Data.SqlClient;
|
||||
using System.Data.SqlTypes;
|
||||
|
||||
namespace Library;
|
||||
|
||||
public static class SQLExtensions
|
||||
{
|
||||
public static string? String( this SqlDataReader reader , string column_id )
|
||||
{
|
||||
int column_index = reader.FindColumn( column_id );
|
||||
if ( column_index < 0 )
|
||||
return null;
|
||||
|
||||
return reader.String( column_index );
|
||||
}
|
||||
|
||||
public static string? String( this SqlDataReader reader , int column_index )
|
||||
{
|
||||
if ( reader.IsDBNull( column_index ) )
|
||||
return null;
|
||||
|
||||
string? o = reader[ column_index ].ToString( );
|
||||
if ( o == null )
|
||||
return null;
|
||||
|
||||
return o!;
|
||||
}
|
||||
|
||||
public static string StringSafe( this SqlDataReader reader , string column_id )
|
||||
{
|
||||
int column_index = reader.FindColumn( column_id );
|
||||
if ( column_index < 0 )
|
||||
return "";
|
||||
|
||||
return reader.StringSafe( column_index );
|
||||
}
|
||||
|
||||
public static string StringSafe( this SqlDataReader reader , int column_index )
|
||||
{
|
||||
if ( reader.IsDBNull( column_index ) )
|
||||
return "";
|
||||
|
||||
string? o = reader[ column_index ].ToString( );
|
||||
if ( o == null ) return "";
|
||||
|
||||
return o!;
|
||||
}
|
||||
|
||||
public static DateTime DateTime( this SqlDataReader reader , string column_id )
|
||||
{
|
||||
int column_index = reader.FindColumn( column_id );
|
||||
if ( column_index < 0 )
|
||||
return System.DateTime.MinValue;
|
||||
|
||||
return reader.DateTime( column_index );
|
||||
}
|
||||
|
||||
public static DateTime DateTime( this SqlDataReader reader , int column_index )
|
||||
{
|
||||
object data_value = reader[ column_index ];
|
||||
if ( data_value is DateTime date_time_result )
|
||||
return date_time_result;
|
||||
|
||||
return System.DateTime.MinValue;
|
||||
}
|
||||
|
||||
public static int Int( this SqlDataReader reader , string column_id , int fallback = 0 )
|
||||
{
|
||||
int column_index = reader.FindColumn( column_id );
|
||||
if ( column_index < 0 )
|
||||
return fallback;
|
||||
|
||||
return reader.Int( column_index , fallback );
|
||||
}
|
||||
|
||||
public static int Int( this SqlDataReader reader , int column_index , int fallback = 0 )
|
||||
{
|
||||
object data = reader[ column_index ];
|
||||
if ( data == null )
|
||||
return fallback;
|
||||
|
||||
try
|
||||
{
|
||||
return Convert.ToInt32( data );
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
|
||||
if ( int.TryParse( data.ToString( ) , out int result ) )
|
||||
return result;
|
||||
|
||||
return fallback;
|
||||
}
|
||||
|
||||
public static long Int64( this SqlDataReader reader , string column_id , long fallback )
|
||||
{
|
||||
int column_index = reader.FindColumn( column_id );
|
||||
if ( column_index < 0 )
|
||||
return fallback;
|
||||
|
||||
return reader.Int64( column_index , fallback );
|
||||
}
|
||||
|
||||
public static long Int64( this SqlDataReader reader , int column_index , long fallback )
|
||||
{
|
||||
object data = reader[ column_index ];
|
||||
if ( data == null )
|
||||
return fallback;
|
||||
|
||||
try
|
||||
{
|
||||
return Convert.ToInt64( data );
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
|
||||
if ( long.TryParse( data.ToString( ) , out long result ) )
|
||||
return result;
|
||||
|
||||
return fallback;
|
||||
}
|
||||
|
||||
public static decimal Numeric( this SqlDataReader reader , string column_id , decimal fallback )
|
||||
{
|
||||
int column_index = reader.FindColumn( column_id );
|
||||
if ( column_index < 0 )
|
||||
return fallback;
|
||||
|
||||
return reader.Numeric( column_index , fallback );
|
||||
}
|
||||
|
||||
public static decimal Numeric( this SqlDataReader reader , int column_index , decimal fallback )
|
||||
{
|
||||
SqlDecimal data = reader.GetSqlDecimal( column_index );
|
||||
if ( data.IsNull )
|
||||
return 0;
|
||||
return data.Value;
|
||||
}
|
||||
|
||||
|
||||
public static int FindColumn( this SqlDataReader reader , string column_id )
|
||||
{
|
||||
try
|
||||
{
|
||||
return reader.GetOrdinal( column_id );
|
||||
}
|
||||
catch ( Exception )
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user