eDosStationFull/eDosStation_Backup_2025.01.09_11.33.03/extensions.cs
2026-08-18 12:15:26 +02:00

179 lines
6.3 KiB
C#

using System;
static public class extensions
{
static public bool SetIfExists(this System.Data.SqlClient.SqlCommand cmd, string paramname, object value)
{
bool found = true;
if (value == null) value = DBNull.Value;
if (cmd.Parameters.Contains(paramname)) cmd.Parameters[paramname].Value = value;
else {
if (paramname[0] != '@') paramname = "@" + paramname; else paramname = paramname.Substring(1);
if (cmd.Parameters.Contains(paramname))
cmd.Parameters[paramname].Value = value;
else found = false;
}
return found;
}
static public bool SetIntParam(this System.Data.SqlClient.SqlCommand c, string paramname, string value)
{
bool found = true;
object ovalue;
if (int.TryParse(value, out int ivalue)) ovalue = ivalue; else ovalue = DBNull.Value;
if (!c.Parameters.Contains(paramname))
{
if (paramname[0] != '@') paramname = "@" + paramname; else paramname = paramname.Substring(1);
found = c.Parameters.Contains(paramname);
}
if (found)
c.Parameters[paramname].Value = ovalue;
return found;
}
static public bool SetIntParam(this System.Data.SqlClient.SqlCommand c, string paramname, int? value)
{
bool found = true;
object ovalue;
if (value.HasValue) ovalue = value.Value; else ovalue = DBNull.Value;
if (!c.Parameters.Contains(paramname))
{
if (paramname[0] != '@') paramname = "@" + paramname; else paramname = paramname.Substring(1);
found = c.Parameters.Contains(paramname);
}
if (found)
c.Parameters[paramname].Value= ovalue;
return found;
}
static public bool SetStringParam(this System.Data.SqlClient.SqlCommand c, string paramname, string value)
{
bool found = true;
object ovalue ;
if (string.IsNullOrEmpty(value)) ovalue = DBNull.Value; else ovalue = value;
if (!c.Parameters.Contains(paramname))
{
if (paramname[0] != '@') paramname = "@" + paramname; else paramname = paramname.Substring(1);
found = c.Parameters.Contains(paramname);
}
c.Parameters[paramname].Value = ovalue;
return found;
}
static public bool SetBoolParam(this System.Data.SqlClient.SqlCommand c, string paramname, bool value)
{
bool found = true;
if (c.Parameters.Contains(paramname)) c.Parameters[paramname].Value = value;
else
{
if (paramname[0] != '@') paramname = "@" + paramname; else paramname = paramname.Substring(1);
if (c.Parameters.Contains(paramname)) c.Parameters[paramname].Value = value;
else found = false;
}
return found;
}
static public bool SetBoolParam(this System.Data.SqlClient.SqlCommand c, string paramname, bool value, LSWLib.CLog spl=null )
{
bool found = true;
if (c.Parameters.Contains(paramname)) c.Parameters[paramname].Value = value;
else
{
if (paramname[0] != '@') paramname = "@" + paramname; else paramname = paramname.Substring(1);
if (c.Parameters.Contains(paramname)) c.Parameters[paramname].Value = value;
else found = false;
}
if (!found && spl != null) spl.WriteSplunkLog("SetBoolParam", LSWLib.CLog.iseverity.err, paramname);
return found;
}
public static bool BoolOrDefault( this System.Data.SqlClient.SqlDataReader rs, string colName, bool defaultValue)
{
bool rv = defaultValue;
try
{
int c = rs.GetOrdinal(colName);
if (!rs.IsDBNull(c)) rv = rs.GetBoolean(c);
}
catch { rv = defaultValue; }
return rv;
}
public static byte ByteOrDefault(this System.Data.SqlClient.SqlDataReader rs, string colName, byte defaultValue)
{
byte rv = defaultValue;
try
{
int c = rs.GetOrdinal(colName);
if (!rs.IsDBNull(c)) rv = rs.GetByte(c);
}
catch { rv = defaultValue; }
return rv;
}
public static int IntOrDefault(this System.Data.SqlClient.SqlDataReader rs, string colName, int defaultValue)
{
int rv = defaultValue;
try
{
int c = rs.GetOrdinal(colName);
if (!rs.IsDBNull(c)) rv = rs.GetInt32(c);
}
catch { rv = defaultValue; }
return rv;
}
public static string StringOrDefault(this System.Data.SqlClient.SqlDataReader rs, string colName, string defaultValue)
{
string rv = defaultValue;
try
{
int c = rs.GetOrdinal(colName);
if (!rs.IsDBNull(c)) rv = rs.GetString(c);
}
catch { rv = defaultValue; }
return rv;
}
public static int IntOrDefault(this System.Data.DataRow dr, string colName, int iDefault)
{
int value;
int ci = dr.Table.Columns.IndexOf(colName);
if (ci >= 0 && dr[ci] is int) value = (int)dr[ci];
else value = iDefault;
return value;
}
public static int? IntOrNull(this System.Data.DataRow dr, string colName)
{
int? value;
int ci = dr.Table.Columns.IndexOf(colName);
if (ci >= 0 && dr[ci] is int?) value = (int ?)dr[ci];
else value = null;
return value;
}
public static bool BoolOrFalse(this System.Data.DataRow dr, string colName)
{
bool value;
int ci = dr.Table.Columns.IndexOf(colName);
if (ci >= 0)
{
switch (dr[ci])
{
case bool b: value = b; break;
case int i: value = i != 0; break;
default: value = false; break;
}
}
else value = false;
return value;
}
public static double? DoubleOrNull(this System.Data.DataRow dr, string colName)
{
double? value;
int ci = dr.Table.Columns.IndexOf(colName);
if (ci >= 0)
{
switch (dr[ci])
{
case decimal d: value = (double)d; break;
case double df: value = df; break;
case float ff: value = (double)ff; break;
default: value = null; break;
}
}
else value = null;
return value;
}
}