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
[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:
_Geometry = "POINT(55.9271035250276 -3.29431266523898)", //Geometry 类型数据结构
//来源:C/S框架网 | www.csframework.com | QQ:23404761
//SQL SERVER 2008支持两种空间数据类型,geometry和geography.其中geometry数据类型支持平面或平面球数据,
//geography可用于存储GPS经度和纬度坐标等椭球体数据。
//geometry和geography数据类型基于geometry层次结构。
_Geography = "POINT(55.9271035250276 -3.29431266523898)", //Geography 类型数据结构
//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
_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
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
/// 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等,由于各种业务场景以及用户需求,促使我们的数据库系统部署在不同类型的数据库服务器上。若开发的系统能支持多种数据库的快速切换,可以为我们减少很多烦恼,同时提高系统的适应性、兼容性以及可扩展性。

参考文档:
SQL Server 数据类型对应.NET类型的EF模型定义|C/S开发框架
[人才房产]青岛房产网 2008 (C#.net+Sql server)-源码下载
C#.NET Winform轻量级UI框架软件快速开发平台(MySQL, Oracle, MsSQL)
MySql数据类型(MySqlDbType)名称对应.NET类型(Type)
MsSql数据类型(SqlDbType)名称对应.NET类型(Type)
MySql数据类型(MySqlDbType)与.NET类型(Type)对应关系
MsSql数据类型(SqlDbType)与.NET类型(Type)对应关系
C/S架构多语言界面UI框架软件开发框架(C#.NET+Winform+DEV+SQL)
将SQLServer数据类型转换为.Net中SqlDbType类型
SqlServer数据类型、DbType类型、.NET类型与达梦数据类型关系表|C/S开发框架
FastReport.NET 2023使用DataTable报表数据源配置MsSqlDataConnection连接|C/S开发框架
VS2022+.NET6:MySql时间戳(timestamp)类型对应EF Core类型注意事项
C#.NET 6 实现全局异常处理-C/S开发框架
C# ASP.NET使用ashx一般处理程序实现上传文件功能-C/S开发框架
C#.NET 查询MYSQL报错:值类型与列类型不匹配不能在列中存储 。所需类型是MySqlDateTime
C#.NET给DataTable日期类型的列赋值报错:所需类型是 MySqlDateTime,值类型与列类型不匹配
SQL Server 数据类型对应.NET类型的EF模型定义|C/S开发框架
[人才房产]青岛房产网 2008 (C#.net+Sql server)-源码下载
C#.NET Winform轻量级UI框架软件快速开发平台(MySQL, Oracle, MsSQL)
MySql数据类型(MySqlDbType)名称对应.NET类型(Type)
MsSql数据类型(SqlDbType)名称对应.NET类型(Type)
MySql数据类型(MySqlDbType)与.NET类型(Type)对应关系
MsSql数据类型(SqlDbType)与.NET类型(Type)对应关系
C/S架构多语言界面UI框架软件开发框架(C#.NET+Winform+DEV+SQL)
将SQLServer数据类型转换为.Net中SqlDbType类型
SqlServer数据类型、DbType类型、.NET类型与达梦数据类型关系表|C/S开发框架
FastReport.NET 2023使用DataTable报表数据源配置MsSqlDataConnection连接|C/S开发框架
VS2022+.NET6:MySql时间戳(timestamp)类型对应EF Core类型注意事项
C#.NET 6 实现全局异常处理-C/S开发框架
C# ASP.NET使用ashx一般处理程序实现上传文件功能-C/S开发框架
C#.NET 查询MYSQL报错:值类型与列类型不匹配不能在列中存储 。所需类型是MySqlDateTime
C#.NET给DataTable日期类型的列赋值报错:所需类型是 MySqlDateTime,值类型与列类型不匹配
其它资料:
什么是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内容管理系统 |
什么是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内容管理系统 |
在线客服
