C#.NET 处理SQL特殊数据类型Geography/Geometry/Hierarchyid/XML
C#.NET 处理SQL特殊数据类型Geography/Geometry/Hierarchyid/XML
产品详情: http://www.csframework.com/cs-framework-database.htm
CSFramework.DB简介
我们在开发软件过程中,特别是基于数据管理应用相关的系统,一般采用一种数据库,如Microsoft SQL Server,超大型系统有的使用Oracle,部分Web系统采用开源的MySQL等,由于各种业务场景以及用户需求,促使我们的数据库系统部署在不同类型的数据库服务器上。若开发的系统能支持多种数据库的快速切换,可以为我们减少很多烦恼,同时提高系统的适应性、兼容性以及可扩展性。
扫一扫加微信
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
运行平台: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等,由于各种业务场景以及用户需求,促使我们的数据库系统部署在不同类型的数据库服务器上。若开发的系统能支持多种数据库的快速切换,可以为我们减少很多烦恼,同时提高系统的适应性、兼容性以及可扩展性。
扫一扫加微信
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
NewDoc C/S框架网