笔记--随时更新

摘要:
同时,将主项目的输出路径设置为网站目录dll文件所在的文件夹,并将其他引用项目的dll设置为复制到本地,从而实现dll文件的动态更新。调试时,首先添加断点。添加断点后,重新生成整个解决方案。SQLOLEDB。1.表示SqlServer数据库。“);return0;}#region2017-06-20-支持获取和修改子数据库的政府数据源-统一接口调用统一修改

一、电脑先安装SqlServer2008,后安装SqlServer2014

在通过公司封装的Lnd.BaseOper(其内部是通过OLEDBConnection实现的)去访问SqlServer2014的数据库会报错,因为如果先安装2008,再安装2014,导致sqlexpress实例占用了1433端口,2014的实例MSSQLSERVER只能使用动态端口。

可以在SqlServer2014配置管理器中修改端口,如果没有配置为1433端口,在访问时需要添加端口号。使用SqlConnection则不需要配置端口号。

我的电脑目前情况时: sqlserver2008, sqlexpress实例,1444端口

                                    sqlserver2014,MSSQLSERVER,1433端口

二、一个解决方案,多个项目,其中一个为主项目,在主项目的引用中添加其他项目生成的dll。同时将主项目的输出路径设置为网站目录dll文件所在的文件夹,引用的其他项目的dll要设置为复制到本地,实现dll文件的动态更新。

在调试时,首先加断点,加完断点以后重新生成整个解决方案。浏览器端刷新站点,然VS中选择调试--附加到进程w3wp.exe,应用程序池与IIS中网站的应用程序池相同,如此即可进入断点

三、Lnd.BaseOper.CBaseOleDb 的数据源连接字符串中Provider有三种类型,分别是SQLOLEDB,代表Access数据库。SQLOLEDB.1,代表SqlServer数据库。OraOLEDB.Oracle.1代表Oracle数据库。

Lnd.BaseOper主要用于操作数据库,Lnd.BaseGISOper主要用于操作图层

四、ORALCE设置字段自增

create sequence SEQ_Userinf start with 1 increment by 1
nomaxvalue
nominvalue
nocache;

CREATE OR REPLACE TRIGGER tg_test
BEFORE INSERT ON BDC_ZDYTQLXX
FOR EACH ROW WHEN (new.ID0 is null)
begin
select SEQ_Userinf.nextval into:new.ID0 from dual;
end;

五、devexpress灵活使用LayoutControlGroup和GroupControl可以设计出自由放大,拉伸的界面

六、gridControlFieldName和Name是不同的,使用datasource绑定时绑定的是FieldName

七、Oracle实时监听刚刚执行的sql语句

select t.SQL_TEXT,t.LAST_ACTIVE_TIME,t.MODULE from v$sql t
where t.LAST_ACTIVE_TIME>(sysdate - interval '2' MINUTE) --执行10分钟内的SQL语句
and (t.MODULE is null or t.MODULE not like '%PL/SQL%') --不是在某些终端里的执行
and lower(t.SQL_TEXT) like '%update%' OR lower(t.SQL_TEXT) like '%select%' OR lower(t.SQL_TEXT) like '%insert%' OR lower(t.SQL_TEXT) like '%delete%'--查询某类SQL语句
order by t.MODULE DESC,t.LAST_ACTIVE_TIME DESC

八、SqlServer可以使用SQL Server Proflier工具进行分析,在事件选择中如下图设置,监听sql语句执行情况

笔记--随时更新第1张

 九、Lnd.BaseOper.dll源码学习

CopyData_Shp复制shp文件

 笔记--随时更新第2张

AddSet方法

 十、创建一个临时简单要素类并用另一个简单要素类的字段结构

#region 提取后的不动产宗地简单要素类sfcTemp,字段结构与自然资源宗地图层一致
//创建临时简单要素类
DataBase _dbTem = DataBase.OpenTempDB();
SFeatureCls sfcTemp = new SFeatureCls(_dbTem);
if (_dbTem == null || sfcTemp == null)
{
DebugTool.yDebugStr("临时数据库创建失败,宗地图形导入终止");
return;
}
int nClsIDTem = 0;
Guid guidTem = Guid.NewGuid();
string strNewClsNameSrc = "Temp_" + guidTem.ToString();
nClsIDTem = _dbTem.XClsIsExist(XClsType.SFCls, strNewClsNameSrc);
if (nClsIDTem > 0)
{
SFeatureCls.Remove(_dbTem, nClsIDTem);
}
string strClsUrlSrc = string.Format("{0}/sfcls/{1}", _dbTem.URL, strNewClsNameSrc);
nClsIDTem = sfcTemp.Create(strClsUrlSrc, GeomType.Reg);
if (nClsIDTem < 0)
{
DebugTool.yDebugStr("临时简单要素类创建失败,宗地图形导入终止");
return;
}
//临时简单要素类属性结构设置,字段结构与自然资源宗地图层一致
RecordSet rcdsetZrzyZD = sfcZrzyZD.Select(null);
if (rcdsetZrzyZD != null)
{
RecordSet rcdsetTemp = sfcTemp.Select(null);
Fields fldsS = rcdsetZrzyZD.Fields;
Fields fldsD = rcdsetTemp.Fields;
if (fldsS != null && fldsS.Count > 0 && fldsD != null)
{
for (int x = 0; x < fldsS.Count; x++)
{
Field fldS = fldsS[x];
fldsD.AppendField(fldS);
}
sfcTemp.Fields = fldsD;
}
}
#endregion

十一、自然资源连接政务数据源

COtherDS cOtherDS = new COtherDS();
string strConn = cOtherDS.GetOfficeDsConnectStr();
cOtherDS.Close();

CBaseOleDb oleDbZd = new CBaseOleDb("BDC_ZDXX", strConn);
CBaseOleDb oleDbZsx = new CBaseOleDb("BDC_ZSX", strConn);

if (oleDbZd == null || oleDbZd.m_bTblOpen == false)
{
DebugTool.yDebugStrTime("连接BDC_ZDXX表失败!");
XtraMessageBox.Show("连接BDC_ZDXX表失败!");
return 0;
}

#region 2017-06-20-支持分库的政务数据源获取修改---统一接口调用便于统一修改
string strCon = AlterCommonOper.GetOfficeConnStr();
#endregion

ZrZyBaseOper.GetOfficeDsnInfo()

十二、有则Insert,无则Update

SQLSERVER

if not exists (select id,abc,def from A_TEST where and abc = 'B')

INSERT INTO A_TEST (id,abc,def,ddd) VALUES('A','B','C','D')  

else update A_TEST set id = 'A',abc='B' ,def='def',ddd='ddd' where and abc = 'B'

 

ORACLE

string.Format("MERGE INTO ZRZY_CONFIG a USING (select count(*) co from ZRZY_CONFIG where ZRZY_CONFIG.参数描述='宗地URL') b ON(b.co<>0) WHEN MATCHED THEN UPDATE SET a.参数值 = '{0}' where a.参数描述='宗地URL' WHEN NOT MATCHED THEN INSERT VALUES ('宗地URL', '{1}')", strZdUrl, strZdUrl);

十三、拼接自然资源登记单元号时获得对应自然资源类型的备注

AlterCommonOper.GetBZByCode()  //这个方法访问的是政务数据源中的ZRZY_CODETBL表

自动编号

Lnd.ZrzyBase.AutoNumber.CreateNumber()  //我自己改了针对自然资源登记单元的自动编号,拼接自然资源登记单元号时不读取配置文件中的ZRZYDYLX信息。该方法针对地类图斑图层应该是没有问题的

Lnd.MGAlter.AutoNumber.CteateNumber()

Lnd.MGAlter.AutoNumber.CreateNumberNew()   //针对自然资源登记单元号的自动编号做了修正

BaseFunc.ReSetTbGLTBBSM()关联图斑标识码编号

KeyValuePair

在单元属性变更界面更改单元属性,只能保存到图形属性表,不会保存到政务数据源中

在登记单元调查表界面更改单元属性,不仅能保存到图形属性表中,还能保存到政务数据源中.

在登记单元调查表界面一旦点击保存,则在政务数据源中ZRZY_DYXX表会插入该登记单元的一条记录。之后点击该登记单元弹出登记单元调查表界面会优先读取政务数据源中的记录。导致在单元属性变更界面更改单元属性的单元属性在登记单元调查表中无法看到。

十四、datatable存储为xml

DataSet dataSet = new DataSet();

DataTable dataTable = new DataTable();

dataSet.Tables.Add(dataTable);

dataSet.WriteXml("123.xml");

十五、读取xml到datatable

DataSet dataSet = new DataSet();

dataSet.ReadXml("123.xml");

DataTable dataTable = dataSet.Tables[0];

十六、GApp.g_driverobj.m_AoInfo.m_strActName可以获取当前执行的菜单名

十七、获得当前专题的特定图层

m_strFlagPath = Lnd.BaseOper.BaseOperate.GetMainConfigPath() + "\template\Flag.ini";
m_mapControl = BaseGlobalOper.lndGetCurMapCtrl(BaseGlobalOper.lndGetCurApplication());
if (m_mapControl != null)
{
m_map = m_mapControl.ActiveMap;

//m_sfclsCurFwLayer = BaseMapOper.lndMapGetsfcls(m_map, "房屋");

#region //2016-06-03 潘艳龙-维护地上宗地的房屋属性,在地下宗地发生改变时会影响地上宗地房屋属性的情况
String strCurFw;
String strSubjectIni = Lnd.Subject.LndSysSubject.GetSysSubjectIni();
System.Text.StringBuilder temp = new System.Text.StringBuilder(255);
Lnd.BaseOper.BaseOperate.GetPrivateProfileString("专题管理", "房屋", "", temp, 255, strSubjectIni);
strCurFw = temp.ToString();
m_sfclsCurFwLayer = BaseMapOper.lndMapGetsfcls(m_map, strCurFw);
#endregion
}

免责声明:文章转载自《笔记--随时更新》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Go 每日一库之 flagBzoj 2789: [Poi2012]Letters 树状数组,逆序对下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

ADO.NET复习

目录 ADO.NET ADO.NET思维导图 命名空间 常用类介绍 Connection 类概述 Command 类概述 DataReader 类概述 DataAdapter 类概述 DataSet 类概述 DataTable DataRow类 DataColumn 类 DataSet:更新数据库(SqlCommandBuilder)...

Asp.net中DataTable的排序功能

DataTable里的数据,如果是从数据库中取得的数据,我们可以用order by排序,而从excel表格取得的数据,就需要自己进行操作了。 例如,Dt_Data2是读取Excel表格取到的数据 DataView dvcopy2 = Dt_Data2.DefaultView; dvcopy2.Sort = "部门"; Dt_Data2 = dvcopy2....

C# 异步读取数据库里面的数据与绑定UI的解决办法

异步读取数据库,在数据绑定的时候会出现点问题,就是窗体界面会无法关闭,要结束任务才能结束进程。例如下面代码 首先按习惯的方法,设定线程更新UI a2.CheckForIllegalCrossThreadCalls = false; //a2为窗体名称 下面的代码就是从数据库里取得数据并绑定 private void button1_Click(object...

ADO.NET 2.0 Dataset和Datatable 特性体验(ChinaITLab)

1.新的索引引擎更快的执行效率,下面这段代码在2003中需要157秒,在2005中只要11秒就可以完成: DataSet ds = new DataSet(); ds.Tables.Add("BigTable");ds.Tables[0].Columns.Add("ID", Type.GetType("System.Int32"));ds.Tables[0]...

jquery datatable 参数

DataTables(http://www.datatables.net/)应该是我到目前为止见过的,功能最强大的表格解决方案(当然,不计算其它整套框架中的table控件在内)。 先把它主页上写的特性翻译罗列如下: 可变长度分页;动态过滤;多列排序,带数据类型检测功能;列宽度的智能处理;从多种数据源获取数据(DOM,js Array, ajax file,...

DataTable/集合 转 Json

前端用的jqueryUI框架获取json格式数据绑定显示表格。 后端通过WebService获取的数据是DataTable。 现将获取DataTable转Json,也支持将数据集合转Json。 一。项目中引用:Newtonsoft.Json 二。功能代码,很简单: using System;using System.Data; namespace WebA...