From c83aabafe932fafc32ae701bd307c73906fadb88 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Wed, 21 Dec 2022 17:14:29 +0800 Subject: [PATCH] Add odbc test --- Src/Asp.Net/OdbcTest/Config.cs | 19 +++++ Src/Asp.Net/OdbcTest/Demo/Demo7_Ado.cs | 58 +++++++++++++++ Src/Asp.Net/OdbcTest/Models/AttributeTable.cs | 19 +++++ Src/Asp.Net/OdbcTest/Models/CarType.cs | 7 ++ Src/Asp.Net/OdbcTest/Models/Custom.cs | 14 ++++ Src/Asp.Net/OdbcTest/Models/EntityMapper.cs | 15 ++++ Src/Asp.Net/OdbcTest/Models/Mapper.cs | 54 ++++++++++++++ .../OdbcTest/Models/MyCustomAttributeTable.cs | 19 +++++ Src/Asp.Net/OdbcTest/Models/Order.cs | 24 ++++++ Src/Asp.Net/OdbcTest/Models/OrderItem.cs | 18 +++++ Src/Asp.Net/OdbcTest/Models/TestTree.cs | 17 +++++ Src/Asp.Net/OdbcTest/Models/Tree.cs | 20 +++++ Src/Asp.Net/OdbcTest/Models/ViewOrder.cs | 13 ++++ Src/Asp.Net/OdbcTest/OdbcTest.csproj | 73 +++++++++++++++++++ Src/Asp.Net/OdbcTest/Program.cs | 14 ++++ .../OdbcTest/Properties/AssemblyInfo.cs | 36 +++++++++ .../SqlSugar.Odbc/SqlSugar.Odbc.csproj | 4 +- Src/Asp.Net/SqlSugar.Odbc/packages.config | 2 +- Src/Asp.Net/SqlSugar.sln | 6 ++ 19 files changed, 429 insertions(+), 3 deletions(-) create mode 100644 Src/Asp.Net/OdbcTest/Config.cs create mode 100644 Src/Asp.Net/OdbcTest/Demo/Demo7_Ado.cs create mode 100644 Src/Asp.Net/OdbcTest/Models/AttributeTable.cs create mode 100644 Src/Asp.Net/OdbcTest/Models/CarType.cs create mode 100644 Src/Asp.Net/OdbcTest/Models/Custom.cs create mode 100644 Src/Asp.Net/OdbcTest/Models/EntityMapper.cs create mode 100644 Src/Asp.Net/OdbcTest/Models/Mapper.cs create mode 100644 Src/Asp.Net/OdbcTest/Models/MyCustomAttributeTable.cs create mode 100644 Src/Asp.Net/OdbcTest/Models/Order.cs create mode 100644 Src/Asp.Net/OdbcTest/Models/OrderItem.cs create mode 100644 Src/Asp.Net/OdbcTest/Models/TestTree.cs create mode 100644 Src/Asp.Net/OdbcTest/Models/Tree.cs create mode 100644 Src/Asp.Net/OdbcTest/Models/ViewOrder.cs create mode 100644 Src/Asp.Net/OdbcTest/OdbcTest.csproj create mode 100644 Src/Asp.Net/OdbcTest/Program.cs create mode 100644 Src/Asp.Net/OdbcTest/Properties/AssemblyInfo.cs diff --git a/Src/Asp.Net/OdbcTest/Config.cs b/Src/Asp.Net/OdbcTest/Config.cs new file mode 100644 index 000000000..36fc5b365 --- /dev/null +++ b/Src/Asp.Net/OdbcTest/Config.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace OrmTest +{ + + public class Config + { + + public static string ConnectionString = "Driver={GBase ODBC DRIVER (64-Bit)};Host=localhost;Service=19088;Server=gbase01;Database=testdb;Protocol=onsoctcp;Uid=gbasedbt;Pwd=GBase123;Db_locale=zh_CN.utf8;Client_locale=zh_CN.utf8"; + + public static string ConnectionString2 = "Driver={GBase ODBC DRIVER (64-Bit)};Host=localhost;Service=19088;Server=gbase01;Database=testdb;Protocol=onsoctcp;Uid=gbasedbt;Pwd=GBase123;Db_locale=zh_CN.utf8;Client_locale=zh_CN.utf8"; + + public static string ConnectionString3 = "Driver={GBase ODBC DRIVER (64-Bit)};Host=localhost;Service=19088;Server=gbase01;Database=testdb;Protocol=onsoctcp;Uid=gbasedbt;Pwd=GBase123;Db_locale=zh_CN.utf8;Client_locale=zh_CN.utf8"; + } +} diff --git a/Src/Asp.Net/OdbcTest/Demo/Demo7_Ado.cs b/Src/Asp.Net/OdbcTest/Demo/Demo7_Ado.cs new file mode 100644 index 000000000..f71b7f95c --- /dev/null +++ b/Src/Asp.Net/OdbcTest/Demo/Demo7_Ado.cs @@ -0,0 +1,58 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace OrmTest +{ + public class Demo7_Ado + { + public static void Init() + { + Console.WriteLine(""); + Console.WriteLine("#### Ado Start ####"); + + SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() + { + DbType = DbType.Odbc, + ConnectionString = Config.ConnectionString, + InitKeyType = InitKeyType.Attribute, + IsAutoCloseConnection = true, + AopEvents = new AopEvents + { + OnLogExecuting = (sql, p) => + { + Console.WriteLine(sql); + Console.WriteLine(string.Join(",", p?.Select(it => it.ParameterName + ":" + it.Value))); + } + } + }); + //sql + var dt = db.Ado.GetDataTable("select * from order where @id>0 or name=@name", new List(){ + new SugarParameter("@id",1), + new SugarParameter("@name","2") + }); + + //sql + var dt2 = db.Ado.GetDataTable("select * from order where @id>0 or name=@name", new { id = 1, name = "2" }); + + //Stored Procedure + //var dt3 = db.Ado.UseStoredProcedure().GetDataTable("sp_school", new { name = "张三", age = 0 }); + //var nameP = new SugarParameter("@name", "张三"); + //var ageP = new SugarParameter("@age", null, true);//isOutput=true + //var dt4 = db.Ado.UseStoredProcedure().GetDataTable("sp_school", nameP, ageP); + + + + //There are many methods to under db.ado + var list= db.Ado.SqlQuery("select * from order "); + var intValue=db.Ado.SqlQuerySingle("select 1 from dual"); + db.Ado.ExecuteCommand("delete from order where id>1000"); + db.Ado.ExecuteCommand($"delete from order where id>1000"); + //db.Ado.xxx + Console.WriteLine("#### Ado End ####"); + } + } +} diff --git a/Src/Asp.Net/OdbcTest/Models/AttributeTable.cs b/Src/Asp.Net/OdbcTest/Models/AttributeTable.cs new file mode 100644 index 000000000..ced411b49 --- /dev/null +++ b/Src/Asp.Net/OdbcTest/Models/AttributeTable.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; + +using System.Linq; +using System.Text; + +namespace OrmTest +{ + + //[SugarTable("CustomAttributeTable")] + public class AttributeTable + { + + + //[SugarColumn(IsPrimaryKey =true)] + public string Id { get; set; } + public string Name { get; set; } + } +} diff --git a/Src/Asp.Net/OdbcTest/Models/CarType.cs b/Src/Asp.Net/OdbcTest/Models/CarType.cs new file mode 100644 index 000000000..00dc12710 --- /dev/null +++ b/Src/Asp.Net/OdbcTest/Models/CarType.cs @@ -0,0 +1,7 @@ +namespace OrmTest +{ + public class CarType + { + public bool State { get; set; } + } +} \ No newline at end of file diff --git a/Src/Asp.Net/OdbcTest/Models/Custom.cs b/Src/Asp.Net/OdbcTest/Models/Custom.cs new file mode 100644 index 000000000..3b8871c57 --- /dev/null +++ b/Src/Asp.Net/OdbcTest/Models/Custom.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace OrmTest +{ + public class Custom + { + public int Id { get; set; } + public string Name { get; set; } + } +} diff --git a/Src/Asp.Net/OdbcTest/Models/EntityMapper.cs b/Src/Asp.Net/OdbcTest/Models/EntityMapper.cs new file mode 100644 index 000000000..b597012fb --- /dev/null +++ b/Src/Asp.Net/OdbcTest/Models/EntityMapper.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using SqlSugar; +namespace OrmTest +{ + [SugarTable("MyEntityMapper")] + public class EntityMapper + { + [SugarColumn(ColumnName ="MyName")] + public string Name { get; set; } + } +} diff --git a/Src/Asp.Net/OdbcTest/Models/Mapper.cs b/Src/Asp.Net/OdbcTest/Models/Mapper.cs new file mode 100644 index 000000000..8d7991d6c --- /dev/null +++ b/Src/Asp.Net/OdbcTest/Models/Mapper.cs @@ -0,0 +1,54 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace OrmTest +{ + [SugarTable("OrderDetail")] + public class OrderItemInfo + { + [SqlSugar.SugarColumn(IsPrimaryKey = true, IsIdentity = true)] + public int ItemId { get; set; } + public int OrderId { get; set; } + public decimal? Price { get; set; } + [SqlSugar.SugarColumn(IsNullable = true)] + public DateTime? CreateTime { get; set; } + [SugarColumn(IsIgnore = true)] + public Order Order { get; set; } + } + [SugarTable("Order")] + public class OrderInfo + { + [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] + public int Id { get; set; } + public string Name { get; set; } + [SugarColumn(IsIgnore = true)] + public List Items { get; set; } + } + public class ABMapping + { + [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] + public int AId { get; set; } + public int BId { get; set; } + [SugarColumn(IsIgnore = true)] + public A A { get; set; } + [SugarColumn(IsIgnore = true)] + public B B { get; set; } + + } + public class A + { + [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] + public int Id { get; set; } + public string Name { get; set; } + } + public class B + { + [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] + public int Id { get; set; } + public string Name { get; set; } + } +} diff --git a/Src/Asp.Net/OdbcTest/Models/MyCustomAttributeTable.cs b/Src/Asp.Net/OdbcTest/Models/MyCustomAttributeTable.cs new file mode 100644 index 000000000..aa24b7897 --- /dev/null +++ b/Src/Asp.Net/OdbcTest/Models/MyCustomAttributeTable.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; + +using System.Linq; +using System.Text; + +namespace OrmTest +{ + + //[SugarTable("CustomAttributeTable")] + public class MyCustomAttributeTable + { + + + //[SugarColumn(IsPrimaryKey =true)] + public string Id { get; set; } + public string Name { get; set; } + } +} diff --git a/Src/Asp.Net/OdbcTest/Models/Order.cs b/Src/Asp.Net/OdbcTest/Models/Order.cs new file mode 100644 index 000000000..d7ff068b8 --- /dev/null +++ b/Src/Asp.Net/OdbcTest/Models/Order.cs @@ -0,0 +1,24 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace OrmTest +{ + + public class Order + { + [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] + public int Id { get; set; } + + public string Name { get; set; } + public decimal Price { get; set; } + [SugarColumn(IsNullable = true)] + public DateTime CreateTime { get; set; } + [SugarColumn(IsNullable =true)] + public int CustomId { get; set; } + [SugarColumn(IsIgnore = true)] + public List Items { get; set; } + } +} diff --git a/Src/Asp.Net/OdbcTest/Models/OrderItem.cs b/Src/Asp.Net/OdbcTest/Models/OrderItem.cs new file mode 100644 index 000000000..ae3262c7c --- /dev/null +++ b/Src/Asp.Net/OdbcTest/Models/OrderItem.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace OrmTest +{ + [SqlSugar.SugarTable("OrderDetail")] + public class OrderItem + { + [SqlSugar.SugarColumn(IsPrimaryKey =true, IsIdentity =true)] + public int ItemId { get; set; } + public int OrderId { get; set; } + public decimal? Price { get; set; } + [SqlSugar.SugarColumn(IsNullable = true)] + public DateTime? CreateTime { get; set; } + } +} diff --git a/Src/Asp.Net/OdbcTest/Models/TestTree.cs b/Src/Asp.Net/OdbcTest/Models/TestTree.cs new file mode 100644 index 000000000..b8250828a --- /dev/null +++ b/Src/Asp.Net/OdbcTest/Models/TestTree.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace OrmTest +{ + public class TestTree + { + [SqlSugar.SugarColumn(ColumnDataType = "hierarchyid")] + public string TreeId { get; set; } + [SqlSugar.SugarColumn(ColumnDataType = "Geography")] + public string GId { get; set; } + public string Name { get; set; } + } +} diff --git a/Src/Asp.Net/OdbcTest/Models/Tree.cs b/Src/Asp.Net/OdbcTest/Models/Tree.cs new file mode 100644 index 000000000..d2878de64 --- /dev/null +++ b/Src/Asp.Net/OdbcTest/Models/Tree.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace OrmTest +{ + public class Tree + { + [SqlSugar.SugarColumn(IsPrimaryKey =true)] + public int Id { get; set; } + public string Name { get; set; } + public int ParentId { get; set; } + [SqlSugar.SugarColumn(IsIgnore = true)] + public Tree Parent { get; set; } + [SqlSugar.SugarColumn(IsIgnore = true)] + public List Child { get; set; } + } +} diff --git a/Src/Asp.Net/OdbcTest/Models/ViewOrder.cs b/Src/Asp.Net/OdbcTest/Models/ViewOrder.cs new file mode 100644 index 000000000..fcd465747 --- /dev/null +++ b/Src/Asp.Net/OdbcTest/Models/ViewOrder.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace OrmTest +{ + public class ViewOrder:Order + { + public string CustomName { get; set; } + } +} diff --git a/Src/Asp.Net/OdbcTest/OdbcTest.csproj b/Src/Asp.Net/OdbcTest/OdbcTest.csproj new file mode 100644 index 000000000..e811e027a --- /dev/null +++ b/Src/Asp.Net/OdbcTest/OdbcTest.csproj @@ -0,0 +1,73 @@ + + + + + Debug + AnyCPU + {1815EF91-CF2B-44BA-9CBE-690444AD9994} + Exe + OdbcTest + OdbcTest + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {2b3b09df-40a9-49d5-85d3-f67f8d0ea70a} + SqlSugar.Odbc + + + {489bb790-226c-4fad-8d1e-51d72a7ff8e5} + SqlSugar + + + + \ No newline at end of file diff --git a/Src/Asp.Net/OdbcTest/Program.cs b/Src/Asp.Net/OdbcTest/Program.cs new file mode 100644 index 000000000..b0b9e1a10 --- /dev/null +++ b/Src/Asp.Net/OdbcTest/Program.cs @@ -0,0 +1,14 @@ +using OrmTest; +using System; + +namespace GbaseTest +{ + internal class Program + { + static void Main(string[] args) + { + Demo7_Ado.Init(); + Console.WriteLine("Hello World!"); + } + } +} diff --git a/Src/Asp.Net/OdbcTest/Properties/AssemblyInfo.cs b/Src/Asp.Net/OdbcTest/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..a2f0ebe3e --- /dev/null +++ b/Src/Asp.Net/OdbcTest/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 有关程序集的一般信息由以下 +// 控制。更改这些特性值可修改 +// 与程序集关联的信息。 +[assembly: AssemblyTitle("OdbcTest")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("微软中国")] +[assembly: AssemblyProduct("OdbcTest")] +[assembly: AssemblyCopyright("Copyright © 微软中国 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// 将 ComVisible 设置为 false 会使此程序集中的类型 +//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型 +//请将此类型的 ComVisible 特性设置为 true。 +[assembly: ComVisible(false)] + +// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID +[assembly: Guid("1815ef91-cf2b-44ba-9cbe-690444ad9994")] + +// 程序集的版本信息由下列四个值组成: +// +// 主版本 +// 次版本 +// 生成号 +// 修订号 +// +//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值 +//通过使用 "*",如下所示: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Src/Asp.Net/SqlSugar.Odbc/SqlSugar.Odbc.csproj b/Src/Asp.Net/SqlSugar.Odbc/SqlSugar.Odbc.csproj index 681aaa463..aa12ae72c 100644 --- a/Src/Asp.Net/SqlSugar.Odbc/SqlSugar.Odbc.csproj +++ b/Src/Asp.Net/SqlSugar.Odbc/SqlSugar.Odbc.csproj @@ -39,8 +39,8 @@ - - ..\packages\System.Data.Odbc.4.5.0\lib\net461\System.Data.Odbc.dll + + ..\packages\System.Data.Odbc.4.6.0\lib\net461\System.Data.Odbc.dll diff --git a/Src/Asp.Net/SqlSugar.Odbc/packages.config b/Src/Asp.Net/SqlSugar.Odbc/packages.config index 897015931..f1ed2626c 100644 --- a/Src/Asp.Net/SqlSugar.Odbc/packages.config +++ b/Src/Asp.Net/SqlSugar.Odbc/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/Src/Asp.Net/SqlSugar.sln b/Src/Asp.Net/SqlSugar.sln index c381a7917..28a1a9431 100644 --- a/Src/Asp.Net/SqlSugar.sln +++ b/Src/Asp.Net/SqlSugar.sln @@ -47,6 +47,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "QuestDbTest", "QuestDbTest\ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SqlSugar.Odbc", "SqlSugar.Odbc\SqlSugar.Odbc.csproj", "{2B3B09DF-40A9-49D5-85D3-F67F8D0EA70A}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OdbcTest", "OdbcTest\OdbcTest.csproj", "{1815EF91-CF2B-44BA-9CBE-690444AD9994}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -133,6 +135,10 @@ Global {2B3B09DF-40A9-49D5-85D3-F67F8D0EA70A}.Debug|Any CPU.Build.0 = Debug|Any CPU {2B3B09DF-40A9-49D5-85D3-F67F8D0EA70A}.Release|Any CPU.ActiveCfg = Release|Any CPU {2B3B09DF-40A9-49D5-85D3-F67F8D0EA70A}.Release|Any CPU.Build.0 = Release|Any CPU + {1815EF91-CF2B-44BA-9CBE-690444AD9994}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1815EF91-CF2B-44BA-9CBE-690444AD9994}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1815EF91-CF2B-44BA-9CBE-690444AD9994}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1815EF91-CF2B-44BA-9CBE-690444AD9994}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE