- 补充 Ado.ExecuteDataTable Columns 包含 DataType 信息;

This commit is contained in:
28810 2020-07-15 11:49:36 +08:00
parent 309f70f02f
commit 58240836bf
20 changed files with 22 additions and 4 deletions

View File

@ -205,6 +205,7 @@ namespace base_entity
new S_SysConfig<TestConfig> { Name = "testkey22", Config = new TestConfig { clicks = 22, title = "testtitle22" }, Config2 = new TestConfig { clicks = 11, title = "testtitle11" } }.Save(); new S_SysConfig<TestConfig> { Name = "testkey22", Config = new TestConfig { clicks = 22, title = "testtitle22" }, Config2 = new TestConfig { clicks = 11, title = "testtitle11" } }.Save();
new S_SysConfig<TestConfig> { Name = "testkey33", Config = new TestConfig { clicks = 33, title = "testtitle33" }, Config2 = new TestConfig { clicks = 11, title = "testtitle11" } }.Save(); new S_SysConfig<TestConfig> { Name = "testkey33", Config = new TestConfig { clicks = 33, title = "testtitle33" }, Config2 = new TestConfig { clicks = 11, title = "testtitle11" } }.Save();
var testconfigs11 = S_SysConfig<TestConfig>.Select.ToList(); var testconfigs11 = S_SysConfig<TestConfig>.Select.ToList();
var testconfigs11tb = S_SysConfig<TestConfig>.Select.ToDataTable();
var testconfigs111 = S_SysConfig<TestConfig>.Select.ToList(a => a.Name); var testconfigs111 = S_SysConfig<TestConfig>.Select.ToList(a => a.Name);
var testconfigs112 = S_SysConfig<TestConfig>.Select.ToList(a => a.Config); var testconfigs112 = S_SysConfig<TestConfig>.Select.ToList(a => a.Config);
var testconfigs1122 = S_SysConfig<TestConfig>.Select.ToList(a => new { a.Name, a.Config }); var testconfigs1122 = S_SysConfig<TestConfig>.Select.ToList(a => new { a.Name, a.Config });

View File

@ -417,6 +417,7 @@ namespace FreeSql.Tests.MySqlConnector
Assert.Equal(item2.testFieldString, newitem2.testFieldString); Assert.Equal(item2.testFieldString, newitem2.testFieldString);
var items = select.ToList(); var items = select.ToList();
var itemstb = select.ToDataTable();
} }

View File

@ -295,6 +295,7 @@ namespace FreeSql.Tests.Odbc.Dameng
Assert.Equal(item2.String, newitem2.String); Assert.Equal(item2.String, newitem2.String);
var items = select.ToList(); var items = select.ToList();
var itemstb = select.ToDataTable();
} }
[Table(Name = "tb_alltype")] [Table(Name = "tb_alltype")]

View File

@ -123,6 +123,7 @@ namespace FreeSql.Tests.Odbc.Default
Assert.Equal(item2.testFieldString, newitem2.testFieldString); Assert.Equal(item2.testFieldString, newitem2.testFieldString);
var items = select.ToList(); var items = select.ToList();
var itemstb = select.ToDataTable();
} }
[Table(Name = "tb_alltype_notime")] [Table(Name = "tb_alltype_notime")]

View File

@ -270,6 +270,7 @@ namespace FreeSql.Tests.Odbc.KingbaseES
Assert.Equal(item2.String, newitem2.String); Assert.Equal(item2.String, newitem2.String);
var items = select.ToList(); var items = select.ToList();
var itemstb = select.ToDataTable();
} }
[Table(Name = "tb_alltype")] [Table(Name = "tb_alltype")]

View File

@ -271,6 +271,7 @@ namespace FreeSql.Tests.Odbc.MySql
Assert.Equal(item2.testFieldString, newitem2.testFieldString); Assert.Equal(item2.testFieldString, newitem2.testFieldString);
var items = select.ToList(); var items = select.ToList();
var itemstb = select.ToDataTable();
} }

View File

@ -294,6 +294,7 @@ namespace FreeSql.Tests.Odbc.Oracle
Assert.Equal(item2.String, newitem2.String); Assert.Equal(item2.String, newitem2.String);
var items = select.ToList(); var items = select.ToList();
var itemstb = select.ToDataTable();
} }
[Table(Name = "tb_alltype")] [Table(Name = "tb_alltype")]

View File

@ -208,6 +208,7 @@ namespace FreeSql.Tests.Odbc.PostgreSQL
Assert.Equal(item2.testFieldString, newitem2.testFieldString); Assert.Equal(item2.testFieldString, newitem2.testFieldString);
var items = select.ToList(); var items = select.ToList();
var itemstb = select.ToDataTable();
} }
[Table(Name = "tb_alltype")] [Table(Name = "tb_alltype")]

View File

@ -240,6 +240,7 @@ namespace FreeSql.Tests.Odbc.SqlServer
Assert.Equal(item2.testFieldString, newitem2.testFieldString); Assert.Equal(item2.testFieldString, newitem2.testFieldString);
var items = select.ToList(); var items = select.ToList();
var itemstb = select.ToDataTable();
} }
[JsonObject(MemberSerialization.OptIn), Table(Name = "dbo.tb_alltype")] [JsonObject(MemberSerialization.OptIn), Table(Name = "dbo.tb_alltype")]

View File

@ -268,6 +268,7 @@ namespace FreeSql.Tests.PostgreSQL.NetTopologySuite
Assert.Equal(item2.testFieldString, newitem2.testFieldString); Assert.Equal(item2.testFieldString, newitem2.testFieldString);
var items = select.ToList(); var items = select.ToList();
var itemstb = select.ToDataTable();
} }
[Table(Name = "tb_alltype_nts")] [Table(Name = "tb_alltype_nts")]

View File

@ -361,6 +361,7 @@ namespace FreeSql.Tests.Dameng
Assert.Equal(item2.String, newitem2.String); Assert.Equal(item2.String, newitem2.String);
var items = select.ToList(); var items = select.ToList();
var itemstb = select.ToDataTable();
} }
[Table(Name = "tb_alltype")] [Table(Name = "tb_alltype")]

View File

@ -286,6 +286,7 @@ namespace FreeSql.Tests.MsAccess
Assert.Equal(item2.String, newitem2.String); Assert.Equal(item2.String, newitem2.String);
var items = select.ToList(); var items = select.ToList();
var itemstb = select.ToDataTable();
} }
[Table(Name = "tb_alltype")] [Table(Name = "tb_alltype")]

View File

@ -422,6 +422,7 @@ namespace FreeSql.Tests.MySql
Assert.Equal(item2.testFieldString, newitem2.testFieldString); Assert.Equal(item2.testFieldString, newitem2.testFieldString);
var items = select.ToList(); var items = select.ToList();
var itemstb = select.ToDataTable();
} }

View File

@ -395,6 +395,7 @@ namespace FreeSql.Tests.Oracle
Assert.Equal(item2.String, newitem2.String); Assert.Equal(item2.String, newitem2.String);
var items = select.ToList(); var items = select.ToList();
var itemstb = select.ToDataTable();
} }
[Table(Name = "tb_alltype")] [Table(Name = "tb_alltype")]

View File

@ -426,6 +426,7 @@ namespace FreeSql.Tests.PostgreSQL
Assert.Equal(item2.testFieldString, newitem2.testFieldString); Assert.Equal(item2.testFieldString, newitem2.testFieldString);
var items = select.ToList(); var items = select.ToList();
var itemstb = select.ToDataTable();
} }
[Table(Name = "tb_alltype")] [Table(Name = "tb_alltype")]

View File

@ -251,6 +251,7 @@ namespace FreeSql.Tests.ShenTong
Assert.Equal(item2.testFieldString, newitem2.testFieldString); Assert.Equal(item2.testFieldString, newitem2.testFieldString);
var items = select.ToList(); var items = select.ToList();
var itemstb = select.ToDataTable();
} }
[Table(Name = "tb_alltype")] [Table(Name = "tb_alltype")]

View File

@ -276,6 +276,7 @@ namespace FreeSql.Tests.SqlServer
Assert.Equal(item2.testFieldString, newitem2.testFieldString); Assert.Equal(item2.testFieldString, newitem2.testFieldString);
var items = select.ToList(); var items = select.ToList();
var itemstb = select.ToDataTable();
} }
[JsonObject(MemberSerialization.OptIn), Table(Name = "dbo.tb_alltype")] [JsonObject(MemberSerialization.OptIn), Table(Name = "dbo.tb_alltype")]

View File

@ -347,6 +347,7 @@ namespace FreeSql.Tests.Sqlite
Assert.Equal(item2.String, newitem2.String); Assert.Equal(item2.String, newitem2.String);
var items = select.ToList(); var items = select.ToList();
var itemstb = select.ToDataTable();
} }
[Table(Name = "tb_alltype")] [Table(Name = "tb_alltype")]

View File

@ -675,7 +675,7 @@ namespace FreeSql.Internal.CommonProvider
{ {
var name = dr.GetName(a); var name = dr.GetName(a);
if (dt.Columns.Contains(name)) name = $"{name}_{Guid.NewGuid().ToString("N").Substring(0, 4)}"; if (dt.Columns.Contains(name)) name = $"{name}_{Guid.NewGuid().ToString("N").Substring(0, 4)}";
dt.Columns.Add(name); dt.Columns.Add(name, dr.GetFieldType(a));
} }
} }
object[] values = new object[dt.Columns.Count]; object[] values = new object[dt.Columns.Count];
@ -699,7 +699,7 @@ namespace FreeSql.Internal.CommonProvider
{ {
var name = dr.GetName(a); var name = dr.GetName(a);
if (ret.Columns.Contains(name)) name = $"{name}_{Guid.NewGuid().ToString("N").Substring(0, 4)}"; if (ret.Columns.Contains(name)) name = $"{name}_{Guid.NewGuid().ToString("N").Substring(0, 4)}";
ret.Columns.Add(name); ret.Columns.Add(name, dr.GetFieldType(a));
} }
object[] values = new object[ret.Columns.Count]; object[] values = new object[ret.Columns.Count];
dr.GetValues(values); dr.GetValues(values);

View File

@ -598,7 +598,7 @@ namespace FreeSql.Internal.CommonProvider
{ {
var name = dr.GetName(a); var name = dr.GetName(a);
if (dt.Columns.Contains(name)) name = $"{name}_{Guid.NewGuid().ToString("N").Substring(0, 4)}"; if (dt.Columns.Contains(name)) name = $"{name}_{Guid.NewGuid().ToString("N").Substring(0, 4)}";
dt.Columns.Add(name); dt.Columns.Add(name, dr.GetFieldType(a));
} }
} }
object[] values = new object[dt.Columns.Count]; object[] values = new object[dt.Columns.Count];
@ -622,7 +622,7 @@ namespace FreeSql.Internal.CommonProvider
{ {
var name = dr.GetName(a); var name = dr.GetName(a);
if (ret.Columns.Contains(name)) name = $"{name}_{Guid.NewGuid().ToString("N").Substring(0, 4)}"; if (ret.Columns.Contains(name)) name = $"{name}_{Guid.NewGuid().ToString("N").Substring(0, 4)}";
ret.Columns.Add(name); ret.Columns.Add(name, dr.GetFieldType(a));
} }
object[] values = new object[ret.Columns.Count]; object[] values = new object[ret.Columns.Count];
for (int a = 0; a < values.Length; a++) if (!await dr.IsDBNullAsync(a)) values[a] = await dr.GetFieldValueAsync<object>(a); for (int a = 0; a < values.Length; a++) if (!await dr.IsDBNullAsync(a)) values[a] = await dr.GetFieldValueAsync<object>(a);