Made previous change working correctly
This commit is contained in:
@@ -5581,6 +5581,11 @@ namespace DynamORM
|
|||||||
using (IDataReader rdr = cmd.ExecuteReader())
|
using (IDataReader rdr = cmd.ExecuteReader())
|
||||||
mainResult = rdr.CachedReader();
|
mainResult = rdr.CachedReader();
|
||||||
}
|
}
|
||||||
|
else if (types[0] == typeof(DataTable))
|
||||||
|
{
|
||||||
|
using (IDataReader rdr = cmd.ExecuteReader())
|
||||||
|
mainResult = rdr.CachedReader().ToDataTable(binder.Name);
|
||||||
|
}
|
||||||
else if (types[0].IsGenericEnumerable())
|
else if (types[0].IsGenericEnumerable())
|
||||||
{
|
{
|
||||||
Type argType = types[0].GetGenericArguments().First();
|
Type argType = types[0].GetGenericArguments().First();
|
||||||
@@ -10990,7 +10995,7 @@ namespace DynamORM
|
|||||||
/// <param name="name">The name to give the table. If tableName is null or an empty string, a default name is given when added to the System.Data.DataTableCollection.</param>
|
/// <param name="name">The name to give the table. If tableName is null or an empty string, a default name is given when added to the System.Data.DataTableCollection.</param>
|
||||||
/// <param name="nameSpace">The namespace for the XML representation of the data stored in the DataTable.</param>
|
/// <param name="nameSpace">The namespace for the XML representation of the data stored in the DataTable.</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static DataTable GetDataTableFromDataReader(this IDataReader r, string name = null, string nameSpace = null)
|
public static DataTable ToDataTable(this IDataReader r, string name = null, string nameSpace = null)
|
||||||
{
|
{
|
||||||
DataTable schemaTable = r.GetSchemaTable();
|
DataTable schemaTable = r.GetSchemaTable();
|
||||||
DataTable resultTable = new DataTable(name, nameSpace);
|
DataTable resultTable = new DataTable(name, nameSpace);
|
||||||
@@ -11011,7 +11016,7 @@ namespace DynamORM
|
|||||||
while (r.Read())
|
while (r.Read())
|
||||||
{
|
{
|
||||||
DataRow row = resultTable.NewRow();
|
DataRow row = resultTable.NewRow();
|
||||||
for (int i = 0; i < resultTable.Columns.Count - 1; i++)
|
for (int i = 0; i < resultTable.Columns.Count; i++)
|
||||||
row[i] = r[i];
|
row[i] = r[i];
|
||||||
|
|
||||||
resultTable.Rows.Add(row);
|
resultTable.Rows.Add(row);
|
||||||
|
|||||||
@@ -192,6 +192,11 @@ namespace DynamORM
|
|||||||
using (IDataReader rdr = cmd.ExecuteReader())
|
using (IDataReader rdr = cmd.ExecuteReader())
|
||||||
mainResult = rdr.CachedReader();
|
mainResult = rdr.CachedReader();
|
||||||
}
|
}
|
||||||
|
else if (types[0] == typeof(DataTable))
|
||||||
|
{
|
||||||
|
using (IDataReader rdr = cmd.ExecuteReader())
|
||||||
|
mainResult = rdr.CachedReader().ToDataTable(binder.Name);
|
||||||
|
}
|
||||||
else if (types[0].IsGenericEnumerable())
|
else if (types[0].IsGenericEnumerable())
|
||||||
{
|
{
|
||||||
Type argType = types[0].GetGenericArguments().First();
|
Type argType = types[0].GetGenericArguments().First();
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ namespace DynamORM.Helpers
|
|||||||
/// <param name="name">The name to give the table. If tableName is null or an empty string, a default name is given when added to the System.Data.DataTableCollection.</param>
|
/// <param name="name">The name to give the table. If tableName is null or an empty string, a default name is given when added to the System.Data.DataTableCollection.</param>
|
||||||
/// <param name="nameSpace">The namespace for the XML representation of the data stored in the DataTable.</param>
|
/// <param name="nameSpace">The namespace for the XML representation of the data stored in the DataTable.</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static DataTable GetDataTableFromDataReader(this IDataReader r, string name = null, string nameSpace = null)
|
public static DataTable ToDataTable(this IDataReader r, string name = null, string nameSpace = null)
|
||||||
{
|
{
|
||||||
DataTable schemaTable = r.GetSchemaTable();
|
DataTable schemaTable = r.GetSchemaTable();
|
||||||
DataTable resultTable = new DataTable(name, nameSpace);
|
DataTable resultTable = new DataTable(name, nameSpace);
|
||||||
@@ -32,7 +32,7 @@ namespace DynamORM.Helpers
|
|||||||
while (r.Read())
|
while (r.Read())
|
||||||
{
|
{
|
||||||
DataRow row = resultTable.NewRow();
|
DataRow row = resultTable.NewRow();
|
||||||
for (int i = 0; i < resultTable.Columns.Count - 1; i++)
|
for (int i = 0; i < resultTable.Columns.Count; i++)
|
||||||
row[i] = r[i];
|
row[i] = r[i];
|
||||||
|
|
||||||
resultTable.Rows.Add(row);
|
resultTable.Rows.Add(row);
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Data;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using DynamORM;
|
using DynamORM;
|
||||||
|
using DynamORM.Helpers;
|
||||||
|
|
||||||
namespace Tester
|
namespace Tester
|
||||||
{
|
{
|
||||||
@@ -48,6 +50,10 @@ namespace Tester
|
|||||||
|
|
||||||
//db.Execute("DROP TABLE Experiments ");
|
//db.Execute("DROP TABLE Experiments ");
|
||||||
|
|
||||||
|
IDataReader rdr = db.Procedures.sp_getdate<IDataReader>();
|
||||||
|
var dt = rdr.ToDataTable();
|
||||||
|
var dt2 = db.Procedures.sp_getdate<DataTable>();
|
||||||
|
|
||||||
db.Procedures.usp_API_Generate_Doc_Number<string>(key: Guid.NewGuid(), mdn_id: "ZZ");
|
db.Procedures.usp_API_Generate_Doc_Number<string>(key: Guid.NewGuid(), mdn_id: "ZZ");
|
||||||
|
|
||||||
var resL = (db.Procedures.GetProductDesc<IList<GetProductDesc_Result>>() as IEnumerable<dynamic>)
|
var resL = (db.Procedures.GetProductDesc<IList<GetProductDesc_Result>>() as IEnumerable<dynamic>)
|
||||||
|
|||||||
Reference in New Issue
Block a user