C#.NET 处理SQL特殊数据类型Geography/Geometry/Hierarchyid/XML
作者:C/S框架网|www.cscode.ne  发布日期:2021/06/11 15:54:58
  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


CSFramework.DB数据库底层应用框架 v2.0


产品详情: http://www.csframework.com/cs-framework-database.htm


CSFramework.DB简介

  我们在开发软件过程中,特别是基于数据管理应用相关的系统,一般采用一种数据库,如Microsoft SQL Server,超大型系统有的使用Oracle,部分Web系统采用开源的MySQL等,由于各种业务场景以及用户需求,促使我们的数据库系统部署在不同类型的数据库服务器上。若开发的系统能支持多种数据库的快速切换,可以为我们减少很多烦恼,同时提高系统的适应性、兼容性以及可扩展性。



C/S框架网|原创精神.创造价值.打造精品

扫一扫加微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务


上一篇 下一篇