Skip to content

Commit

Permalink
SqlDb - minor changes
Browse files Browse the repository at this point in the history
  • Loading branch information
cattaneoinfoesse committed Aug 2, 2022
1 parent 52508a5 commit 9ce24c3
Show file tree
Hide file tree
Showing 4 changed files with 97 additions and 59 deletions.
4 changes: 2 additions & 2 deletions ACUtils.SqlDb.Utils/ACUtils.SqlDb.Utils.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
<Authors>Andrea Cattaneo</Authors>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<Version>1.0.0.142</Version>
<PackageVersion>1.0.0.142</PackageVersion>
<Version>1.0.0.143</Version>
<PackageVersion>1.0.0.143</PackageVersion>
<Description>Utilities per gestione DataTable</Description>
<NeutralLanguage>it</NeutralLanguage>
<IncludeSymbols>true</IncludeSymbols>
Expand Down
2 changes: 1 addition & 1 deletion ACUtils.SqlDb.Utils/DbFieldAttribute.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
{
public class DbFieldAttribute : System.Attribute, IDbFieldAttribute
{
public string DbField { get; }
public string DbField { get; protected set; }

public DbFieldAttribute(string db_field = null)
{
Expand Down
4 changes: 2 additions & 2 deletions ACUtils.SqlDb/ACUtils.SqlDb.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
<Authors>Andrea Cattaneo</Authors>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<Version>1.0.0.142</Version>
<PackageVersion>1.0.0.142</PackageVersion>
<Version>1.0.0.143</Version>
<PackageVersion>1.0.0.143</PackageVersion>
<Description>Utility per interrogazione database MSSQL</Description>
<NeutralLanguage>it</NeutralLanguage>
<IncludeSymbols>true</IncludeSymbols>
Expand Down
146 changes: 92 additions & 54 deletions ACUtils.SqlDb/SqlDb.cs
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,15 @@ public static DataTable QueryDataTable(SqlConnection connection, string queryStr
return ACUtils.DBModel<T>.Idrate(dt);
}

public async IAsyncEnumerable<T> QueryManyAsync<T>(string sql, params KeyValuePair<string, object>[] queryParams) where T : ACUtils.DBModel<T>, new()
{
var dt = QueryDataTable(sql, queryParams);
await foreach (var q in ACUtils.DBModel<T>.IdrateAsyncGenerator(dt))
{
yield return q;
}
}

public static List<T> QueryMany<T>(SqlConnection connection, string sql, params KeyValuePair<string, object>[] queryParams) where T : ACUtils.DBModel<T>, new()
{
var dt = QueryDataTable(connection, sql, queryParams);
Expand Down Expand Up @@ -138,12 +147,16 @@ public DataSet QueryDataSet(string queryString, params KeyValuePair<string, KeyV

public static DataSet QueryDataSet(SqlConnection connection, string queryString, params KeyValuePair<string, KeyValuePair<SqlDbType, object>>[] queryParams)
{
SqlCommand selectCommand = generateCommand(connection, queryString, queryParams);
SqlDataAdapter adapter = new SqlDataAdapter(selectCommand);
DataSet ds = new DataSet();
adapter.MissingSchemaAction = MissingSchemaAction;
adapter.Fill(ds);
return ds;
using (SqlCommand selectCommand = generateCommand(connection, queryString, queryParams))
{
using (SqlDataAdapter adapter = new SqlDataAdapter(selectCommand))
{
DataSet ds = new DataSet();
adapter.MissingSchemaAction = MissingSchemaAction;
adapter.Fill(ds);
return ds;
}
}
}

public DataSet QueryDataSet(string queryString, params KeyValuePair<string, object>[] queryParams)
Expand Down Expand Up @@ -171,12 +184,16 @@ public DataSet QueryDataSet(string queryString, params KeyValuePair<string, obje

public static DataSet QueryDataSet(SqlConnection connection, string queryString, params KeyValuePair<string, object>[] queryParams)
{
SqlCommand selectCommand = generateCommand(connection, queryString, queryParams);
SqlDataAdapter adapter = new SqlDataAdapter(selectCommand);
DataSet ds = new DataSet();
adapter.MissingSchemaAction = MissingSchemaAction;
adapter.Fill(ds);
return ds;
using (SqlCommand selectCommand = generateCommand(connection, queryString, queryParams))
{
using (SqlDataAdapter adapter = new SqlDataAdapter(selectCommand))
{
DataSet ds = new DataSet();
adapter.MissingSchemaAction = MissingSchemaAction;
adapter.Fill(ds);
return ds;
}
}
}

public DataSet QueryDataSet(string queryString)
Expand Down Expand Up @@ -204,12 +221,16 @@ public DataSet QueryDataSet(string queryString)

public static DataSet QueryDataSet(SqlConnection connection, string queryString)
{
SqlCommand selectCommand = generateCommand(connection, queryString);
SqlDataAdapter adapter = new SqlDataAdapter(selectCommand);
DataSet ds = new DataSet();
adapter.MissingSchemaAction = MissingSchemaAction;
adapter.Fill(ds);
return ds;
using (SqlCommand selectCommand = generateCommand(connection, queryString))
{
using (SqlDataAdapter adapter = new SqlDataAdapter(selectCommand))
{
DataSet ds = new DataSet();
adapter.MissingSchemaAction = MissingSchemaAction;
adapter.Fill(ds);
return ds;
}
}
}

#endregion
Expand Down Expand Up @@ -303,33 +324,37 @@ public T QuerySingleValue<T>(string queryString, params KeyValuePair<string, obj
}
public static T QuerySingleValue<T>(SqlConnection connection, string queryString, params KeyValuePair<string, object>[] queryParams)
{
SqlCommand selectCommand = generateCommand(connection, queryString, queryParams);
object value = selectCommand.ExecuteScalar();
// conversione variabile da object a type specificato
//return (T)TypeDescriptor.GetConverter(typeof(T)).ConvertFrom(value);
var type = typeof(T);
if (Nullable.GetUnderlyingType(typeof(T)) != null)
using (SqlCommand selectCommand = generateCommand(connection, queryString, queryParams))
{
type = Nullable.GetUnderlyingType(type);
if (value == null || value == DBNull.Value)
object value = selectCommand.ExecuteScalar();
// conversione variabile da object a type specificato
//return (T)TypeDescriptor.GetConverter(typeof(T)).ConvertFrom(value);
var type = typeof(T);
if (Nullable.GetUnderlyingType(typeof(T)) != null)
{
return default(T);
type = Nullable.GetUnderlyingType(type);
if (value == null || value == DBNull.Value)
{
return default(T);
}
}
return (T)Convert.ChangeType(value, type);
}
return (T)Convert.ChangeType(value, type);
}

public static Nullable<T> QueryNullableSingleValue<T>(SqlConnection connection, string queryString, params KeyValuePair<string, object>[] queryParams) where T : struct
{
SqlCommand selectCommand = generateCommand(connection, queryString, queryParams);
object value = selectCommand.ExecuteScalar();
if (value is DBNull)
using (SqlCommand selectCommand = generateCommand(connection, queryString, queryParams))
{
return null;
object value = selectCommand.ExecuteScalar();
if (value is DBNull)
{
return null;
}
// conversione variabile da object a type specificato
//return (T)TypeDescriptor.GetConverter(typeof(T)).ConvertFrom(value);
return (T?)Convert.ChangeType(value, typeof(T?));
}
// conversione variabile da object a type specificato
//return (T)TypeDescriptor.GetConverter(typeof(T)).ConvertFrom(value);
return (T?)Convert.ChangeType(value, typeof(T?));
}

public T QuerySingleValue<T>(string queryString, params KeyValuePair<string, KeyValuePair<SqlDbType, object>>[] queryParams)
Expand Down Expand Up @@ -357,9 +382,11 @@ public T QuerySingleValue<T>(string queryString, params KeyValuePair<string, Key

public static T QuerySingleValue<T>(SqlConnection connection, string queryString, params KeyValuePair<string, KeyValuePair<SqlDbType, object>>[] queryParams)
{
SqlCommand selectCommand = generateCommand(connection, queryString, queryParams);
object value = selectCommand.ExecuteScalar();
return (T)Convert.ChangeType(value, typeof(T));
using (SqlCommand selectCommand = generateCommand(connection, queryString, queryParams))
{
object value = selectCommand.ExecuteScalar();
return (T)Convert.ChangeType(value, typeof(T));
}
}


Expand Down Expand Up @@ -388,9 +415,11 @@ public T QuerySingleValue<T>(string queryString)

public static T QuerySingleValue<T>(SqlConnection connection, string queryString)
{
SqlCommand selectCommand = generateCommand(connection, queryString);
object value = selectCommand.ExecuteScalar();
return (T)Convert.ChangeType(value, typeof(T));
using (SqlCommand selectCommand = generateCommand(connection, queryString))
{
object value = selectCommand.ExecuteScalar();
return (T)Convert.ChangeType(value, typeof(T));
}
}


Expand Down Expand Up @@ -448,9 +477,11 @@ public static bool Execute(SqlConnection connection, string queryString, params
{
//queryString = queryString.Trim().Replace(System.Environment.NewLine, " ");
//queryString = System.Text.RegularExpressions.Regex.Replace(queryString, @"\s+", " ");
SqlCommand selectCommand = generateCommand(connection, queryString, queryParams);
var value = selectCommand.ExecuteNonQuery() > 0;
return value;
using (SqlCommand selectCommand = generateCommand(connection, queryString, queryParams))
{
var value = selectCommand.ExecuteNonQuery() > 0;
return value;
}
}

public bool Execute(string queryString, params KeyValuePair<string, KeyValuePair<SqlDbType, object>>[] queryParams)
Expand All @@ -477,9 +508,11 @@ public bool Execute(string queryString, params KeyValuePair<string, KeyValuePair

public bool Execute(SqlConnection connection, string queryString, params KeyValuePair<string, KeyValuePair<SqlDbType, object>>[] queryParams)
{
SqlCommand selectCommand = generateCommand(connection, queryString, queryParams);
var value = selectCommand.ExecuteNonQuery() > 0;
return value;
using (SqlCommand selectCommand = generateCommand(connection, queryString, queryParams))
{
var value = selectCommand.ExecuteNonQuery() > 0;
return value;
}
}

public bool Execute(string queryString)
Expand Down Expand Up @@ -507,8 +540,10 @@ public bool Execute(string queryString)

public static bool Execute(SqlConnection connection, string queryString)
{
SqlCommand selectCommand = generateCommand(connection, queryString);
return selectCommand.ExecuteNonQuery() > 0;
using (SqlCommand selectCommand = generateCommand(connection, queryString))
{
return selectCommand.ExecuteNonQuery() > 0;
}
}

#endregion
Expand Down Expand Up @@ -548,8 +583,7 @@ public static T GetColVal<T>(DataRow dataRow, string columName)
#region generateCommand
private static SqlCommand generateCommand(SqlConnection connection, string queryString)
{
SqlCommand command = new SqlCommand(queryString, connection);
return command;
return new SqlCommand(queryString, connection);
}

private static SqlCommand generateCommand(SqlConnection connection, string queryString, KeyValuePair<string, object>[] queryParams)
Expand Down Expand Up @@ -729,7 +763,7 @@ public void CompleteTransaction()

public void AbortTransaction()
{
if (Transaction.Current.TransactionInformation.Status == TransactionStatus.Active)
if (Transaction.Current?.TransactionInformation?.Status == TransactionStatus.Active)
{
scope?.Dispose();
}
Expand All @@ -742,7 +776,7 @@ public void BulkInsert<T>(string tablename, IEnumerable<T> records)
{
using (var bc = new SqlBulkCopy(ConnectionString))
{
bc.WriteToServer(BulkInsertPrepare(bc, tablename, records));
bc.WriteToServer(BulkInsertPrepare(bc, tablename, records));
}
}
public async System.Threading.Tasks.Task BulkInsertAsync<T>(string tablename, IEnumerable<T> records)
Expand Down Expand Up @@ -864,7 +898,11 @@ public void Dispose()

protected virtual void Dispose(bool disposing)
{
AbortTransaction();
try
{
AbortTransaction();
}
catch { }
}
#endregion
}
Expand Down

0 comments on commit 9ce24c3

Please sign in to comment.