我的表格由于有使用了虚拟表,只能使用ADO.NET方法联接数据库,现在发现 这个窗口的表格,获得数据后,像positionchanged 跟currentChanged这几个事件都不能正常执行,不知道是什么情况,要如何解决呢
loadsql = cexp(LoadSql, r("帐户编号"), dtpBegin.Value, dtpFinish.Value, 1 , LoadTop)
Dim db = HySql.DataBaseFactory.CreateDatabase() '利用ADO.NET方式 创建表
Dim dt As System.Data.DataTable = db.ExecuteDataSet(loadsql).Tables(0) '执行存储过程 获取表结构
t.DataSource = dt '绑定数据表
数据生产是利用存储过程,要做流水表 生产每一行的结欠,再加上每一行都没有全局唯一键,不能固定行,只能使用虚拟表 sql的数据行数太长太多,只能使用储存过程了,结果一导入,事件就失效了
这种到全局表事件处理:
http://www.foxtable.com/webhelp/topics/0671.htm
比如:
……
t.DataSource = dt '绑定数据表
t.datatable.GlobalHandler.PrepareEdit = True
然后就可以在全局表PrepareEdit事件写点处理
Dim db = HySql.DataBaseFactory.CreateDatabase() '利用ADO.NET方式 创建表
Dim dt As System.Data.DataTable = db.ExecuteDataSet(loadsql).Tables(0) '执行存储过程 获取表结构
t.DataSource = dt '绑定数据表
t.DataTable.GlobalHandler.CurrentChanged=True
加上了,并在全局表里 写上了测试代码 发现只有执行2次 后面就不执行了,再点不同的行 事件都不执行
HySql附件里的窗口1就是使用的CurrentChanged,没有问题的。做个例子发上来测试一下
新建了项目 引用了DLL文件Dim t As Table = Tables(e.Form.Name & "_Table1")
Dim loadsql As String = "s elect * from tbl_商品表"
Dim db = HySql.DataBaseFactory.CreateDatabase() '利用ADO.NET方式 创建表
Dim dt As System.Data.DataTable = db.ExecuteDataSet(loadsql).Tables(0) '执行存储过程 获取表结构
t.DataSource = dt '绑定数据
就用了这个代码 也是一样有问题 我要不要上传一下
{
"dbSettings": {
"defaultConnection": "sqlserver01",
"connectionStrings": [
{
"name": "sqlserver01",
"type": "sqlserver",
"connectionString": "Data Source=IP地址,14003;Initial Catalog=dianshang01;Persist Security Info=false;User ID=sa;Password=password;Timeout=90"
},
]
}
}
麻烦改成你的本地SQL地址跟你的数据库名称