mapxtreme2008 +c#+sql2005 读取日期型字段的问题(内存读写异常)
从sql2005取数据时,有一个日期型字段,mapxtreme获取数据时,直接报错(内存读取错误)换成字符型就没有问题,代码如下
string sql = @"select TaxCollector_ID,Collect_Time,longitude,Latitude from TaxCollector_Locus_GIS where longitude<>0 ";
string tableAlias = "TaxCollector_Locus_GIS";
string colName = "Collect_Time";
//建立XY空间方案
MapInfo.Data.SpatialSchemaXY xy = new MapInfo.Data.SpatialSchemaXY();
xy.XColumn = "longitude";
xy.YColumn = "Latitude";
xy.NullPoint = "0.0, 0.0";
xy.StyleType = MapInfo.Data.StyleType.None;
xy.DefaultStyle = new MapInfo.Styles.CompositeStyle();
xy.CoordSys = MapInfo.Engine.Session.Current.CoordSysFactory.CreateLongLat(MapInfo.Geometry.DatumID.WGS84);
//建立TableInfo
MapInfo.Data.TableInfoServer ti = new MapInfo.Data.TableInfoServer(tableAlias, DB,sql, MapInfo.Data.ServerToolkit.Odbc);
ti.SpatialSchema = xy;
MapInfo.Data.Table miCustomers = MapInfo.Engine.Session.Current.Catalog.OpenTable(ti);
MapInfo.Mapping.FeatureLayer featureLayer = new MapInfo.Mapping.FeatureLayer(miCustomers);
m_MapControl.Map.Layers.Add(featureLayer);
m_MapControl.Map.SetView(featureLayer); --------------------编程问答-------------------- 你贴的代码是已经改成字符型的了 贴原来出错的代码啊
sql你是怎么执行的啊? 从上面看不出来啊 --------------------编程问答-------------------- 代码是一样的,只表结构不一样
CREATE TABLE [dbo].[TaxCollector_Locus_GIS](
[TaxCollector_ID] [varchar](32) COLLATE Chinese_PRC_CI_AS NOT NULL,
[Collect_Time] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,
[Longitude] [float] NULL,
[Latitude] [float] NULL,
CONSTRAINT [PK_TaxCollector_Locus_GIS] PRIMARY KEY CLUSTERED
(
[TaxCollector_ID] ASC,
[Collect_Time] ASC
)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
Collect_Time用字符型可以,换成datetime就出错 --------------------编程问答-------------------- 连接字符串加上DLG=0 --------------------编程问答-------------------- 没法验证啊 如果不行 你就用String类型吧 无非就是自己转一下类型
网上找了找也没有找到相关的内容 可能是MapXTreme支持的DateTime跟数据库的不太一样造成的 又没有证据。 --------------------编程问答-------------------- 好久没用了,看不太懂了。。。帮你顶顶吧。。 --------------------编程问答-------------------- 把读出的数据怎样显示到界面的代码分享一下么?
补充:企业软件 , 地理信息系统