C#.NET 处理SQL特殊数据类型Geography/Geometry/Hierarchyid/XML
C#.NET 处理SQL特殊数据类型Geography/Geometry/Hierarchyid/XML
SQL特殊数据类型表结构: SQL Code: CREATE TABLE [dbo].[_TestDataUpdate]( [isid] [int] IDENTITY(1,1) NOT NULL, [_Binary] [binary](50) NULL, [_DateTimeOffset] [datetimeoffset](7) NULL, [_Sql_variant] [sql_variant] NULL, [_Xml] [xml] NULL, [_UniqueIdentifier] [uniqueidentifier] NULL, [_Geometry] [geometry] NULL, [_Timestamp] [timestamp] NULL, [_Int] [int] NULL, [_Varbinary] [varbinary](50) NULL, [_Bit] [bit] NULL, [_Char] [char](10) NULL, [_Datetime2] [datetime2](7) NULL, [_Geography] [geography] NULL, [_Hierarchyid] [hierarchyid] NULL, [_Image] [image] NULL, [_Ntext] [ntext] NULL, CONSTRAINT [PK__TestDataUpdate] PRIMARY KEY CLUSTERED ( [isid] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] //来源:C/S框架网 | www.csframework.com | QQ:23404761 Geography/Geometry数据类型: C# Code: //SQL SERVER 2008支持两种空间数据类型,geometry和geography.其中geometry数据类型支持平面或平面球数据, //geography可用于存储GPS经度和纬度坐标等椭球体数据。 //geometry和geography数据类型基于geometry层次结构。 _Geography = "POINT(55.9271035250276 -3.29431266523898)", //Geography 类型数据结构 _Geometry = "POINT(55.9271035250276 -3.29431266523898)", //Geometry 类型数据结构 //来源:C/S框架网 | www.csframework.com | QQ:23404761 Hierarchyid数据类型: C# Code: //摘要:hierarchyid 数据类型,是sqlserver 2008中新增的一个CLR数据类型,此数据类型应用于存储具有层级的结构图 _Hierarchyid = "/1/2/2/1/5/3/4/", //来源:C/S框架网 | www.csframework.com | QQ:23404761 DbDataUpdate对象模型框架提交数据: C# Code: string conn = "Data Source=127.0.0.1;Initial Catalog=CSFrameworkV5_Normal;User ID=sa;Password =test;Persist Security Info=True;Connect Timeout=15;"; IDatabase db = DatabaseFactory.CreateDatabase(DatabaseType.SqlServer, conn); var dt = db.GetTable("select TOP 1 * from _TestDataUpdate"); ShowResult($"查询成功,记录{dt.Rows.Count}"); DbDataUpdate update = new DbDataUpdate(db); _TestDataUpdate m = new _TestDataUpdate { _Binary = new byte[] { 1, 2, 3, 4, 5, 56 }, _Bit = true, _Char = 'A', _Int = 100000, _Datetime2 = DateTime.Now, _DateTimeOffset = new DateTimeOffset(DateTime.Now), _Timestamp = new DateTime(), _Image = new byte[] { 1, 2, 3, 4, 5, 56 }, _Ntext = "_Ntext_Ntext_Ntext_Ntext_Ntext", _Sql_variant = "_Sql_variant",//可变数据类型 _UniqueIdentifier = Guid.NewGuid(), _Varbinary = new byte[] { 1, 2, 3, 4, 5, 56 }, //标准XML格式 _Xml = "<?xml version=\"1.0\"?><configuration><startup><supportedRuntime version=\"v4.0\" sku=\".NETFramework,Version=v4.5\"/></startup></configuration>", //SQL SERVER 2008支持两种空间数据类型,geometry和geography.其中geometry数据类型支持平面或平面球数据, //geography可用于存储GPS经度和纬度坐标等椭球体数据。 //geometry和geography数据类型基于geometry层次结构。 _Geography = "POINT(55.9271035250276 -3.29431266523898)", //Geography 类型数据结构 _Geometry = "POINT(55.9271035250276 -3.29431266523898)", //Geometry 类型数据结构 //摘要:hierarchyid 数据类型,是sqlserver 2008中新增的一个CLR数据类型,此数据类型应用于存储具有层级的结构图 _Hierarchyid = "/1/2/2/1/5/3/4/", }; bool ok1 = update.AddObject<_TestDataUpdate>(m, new string[] { "isid", "_Timestamp" }); ShowResult($"新增对象结果{ok1}"); m.isid = 12; bool ok2 = update.UpdateObject<_TestDataUpdate>(m, new string[] { "isid", }, new string[] { "isid", "_Timestamp" }); ShowResult($"修改对象结果{ok2}"); m.isid = 2; bool ok3 = update.DeleteObject<_TestDataUpdate>(m, new string[] { "isid", }); ShowResult($"删除对象结果{ok3}"); //来源:C/S框架网 | www.csframework.com | QQ:23404761 _TestDataUpdate表结构对应的.NET数据类型映射: C# Code: ///<summary> /// ORM模型, 数据表:_TestDataUpdate,由ClassGenerator自动生成 /// </summary> public class _TestDataUpdate { #region 所有字段属性 public System.Int32 isid { get; set; } public System.Byte[] _Binary { get; set; } public System.DateTimeOffset _DateTimeOffset { get; set; } public System.Object _Sql_variant { get; set; } public System.String _Xml { get; set; } public System.Guid _UniqueIdentifier { get; set; } public System.String _Geometry { get; set; } public System.DateTime _Timestamp { get; set; } public System.Int32 _Int { get; set; } public System.Byte[] _Varbinary { get; set; } public System.Boolean _Bit { get; set; } public System.Char _Char { get; set; } public System.DateTime _Datetime2 { get; set; } public System.String _Geography { get; set; } public System.String _Hierarchyid { get; set; } public System.Byte[] _Image { get; set; } public System.String _Ntext { get; set; } #endregion } //来源:C/S框架网 | www.csframework.com | QQ:23404761 CSFramework.DB数据库底层应用框架 v2.0 适用软件:基于C#.NET开发的C/S系统、WebApi后端、Winform桌面应用软件。 运行平台:Windows + .NET Framework 4.5 开发工具:Visual Studio 2015,C#语言 数据库支持:MsSQL+Oracle+MySQL 产品详情: http://www.csframework.com/cs-framework-database.htm CSFramework.DB简介 我们在开发软件过程中,特别是基于数据管理应用相关的系统,一般采用一种数据库,如Microsoft SQL Server,超大型系统有的使用Oracle,部分Web系统采用开源的MySQL等,由于各种业务场景以及用户需求,促使我们的数据库系统部署在不同类型的数据库服务器上。若开发的系统能支持多种数据库的快速切换,可以为我们减少很多烦恼,同时提高系统的适应性、兼容性以及可扩展性。 扫一扫加微信
参考文档:
将SQLServer数据类型转换为C#.Net类型 将SQLServer数据类型转换为.Net中SqlDbType类型 C#.NET SQL数据库备份与还原解决方案 C#.NET 处理字符串数据去左右空格、全角转半角 MsSQL/MySQL/Oracle三种常用数据库数据类型(Data Type)对应关系表 C#.NET数据类型(Type)与DbType的对应关系 DbType与C#.NET数据类型(Type)对应关系 MsSql数据类型(SqlDbType)与.NET类型(Type)对应关系 MySql数据类型(MySqlDbType)与.NET类型(Type)对应关系 Oracle数据类型(OracleDbType)与.NET类型(Type)对应关系 MsSql数据类型(SqlDbType)名称对应.NET类型(Type) MySql数据类型(MySqlDbType)名称对应.NET类型(Type) Oracle数据类型(OracleDbType)名称对应.NET类型(Type) MySQL数据类型(MySqlDbType)数据类型名称对应DbType类型 CSFramework.DbDataUpdate数据模型框架 - 特殊数据类型测试报告
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 | |