Foxtable(狐表)用户栏目专家坐堂 → [求助]网络自动编号问题


  共有6346人关注过本帖树形打印复制链接

主题:[求助]网络自动编号问题

帅哥哟,离线,有人找我吗?
syzsyk
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:274 积分:2303 威望:0 精华:0 注册:2008/9/12 16:46:00
[求助]网络自动编号问题  发帖心情 Post By:2013/5/23 12:49:00 [只看该作者]

在网络环境下复杂编号例程中 

If e.name = "编号" Then
    e.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & e.ProjectPath & "编号.mdb;Persist Security Info=False"
End If

在网络环下红色部分怎么改?


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/5/23 14:05:00 [只看该作者]

网络环境红色部分不需要更改

If e.name = "编号" Then
    e.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & e.ProjectPath & "编号.mdb;Persist Security Info=False"
End If

更改蓝色部分是局域网文件对应路径即可.

如果是外网,还是使用MSSQL吧

 回到顶部
帅哥哟,离线,有人找我吗?
syzsyk
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:274 积分:2303 威望:0 精华:0 注册:2008/9/12 16:46:00
  发帖心情 Post By:2013/5/23 14:27:00 [只看该作者]

完全照例程做的,运行时显示没有编号数据源。

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/5/23 14:32:00 [只看该作者]

完全按照帮助例子不会不行的,帮助例子都经过千百人 千百次是测试的.


你要做的是检查自己哪一步做错了.

 回到顶部
帅哥哟,离线,有人找我吗?
syzsyk
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:274 积分:2303 威望:0 精华:0 注册:2008/9/12 16:46:00
  发帖心情 Post By:2013/5/23 14:32:00 [只看该作者]

我用的是外网。MSSQL。

 回到顶部
帅哥哟,离线,有人找我吗?
syzsyk
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:274 积分:2303 威望:0 精华:0 注册:2008/9/12 16:46:00
  发帖心情 Post By:2013/5/23 16:21:00 [只看该作者]

错误提示,帮忙看一下是怎么回事?

.NET Framework 版本:2.0.50727.6400
Foxtable 版本:2013.4.30.1
错误所在事件:表,动物屠宰检疫,BeforeSaveDataRow
详细错误信息:
调用的目标发生了异常。
未将对象引用设置到对象的实例。


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/5/23 16:32:00 [只看该作者]

其实错误提示已经告诉你是哪一个事件出问题,通常你可以用下面的方法找出到底是哪一行代码出错了:

 

http://www.foxtable.com/help/topics/1485.htm

 

 

然后分析原因,你搞不定的话,贴出动物屠宰检疫表的BeforeSaveDataRow事件代码,告诉我哪一行代码出错,我帮你看看。


 回到顶部
帅哥哟,离线,有人找我吗?
syzsyk
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:274 积分:2303 威望:0 精华:0 注册:2008/9/12 16:46:00
  发帖心情 Post By:2013/5/23 17:00:00 [只看该作者]

BeforeSaveDataRow事件代码:

Dim dr As DataRow = e.DataRow
Dim pf As String
If dr.RowState <> DataRowState.Added Then '如果不是新增行
    Return '那么返回
ElseIf dr.IsNull("登记日期") Then '如果没有输入日期
    e.Cancel = True '取消保存此行
    MessageBox.Show("必须输入登记日期!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Return
Else
    pf = Format(dr("登记日期"),"yyyyMMdd") '否则获得编号的前缀,两位年,两位月
End If
Dim cmd1 As New SQLCommand
Dim cmd2 As New SQLCommand
Dim Key As Integer
cmd1.C '设置数据源名称
cmd2.C
cmd1.commandText = "Select Count(*) From [编号] Where [前缀] = '" & pf & "'"
If cmd1.ExecuteScalar = 0 Then '如果编号表不存在前缀的行,那么增加一行
    cmd1.commandtext = "Insert Into 编号 (前缀, 顺序号) Values('" & pf & "',1)"
    cmd1.ExecuteNonQuery
End If
cmd1.commandText = "Select [顺序号] From [编号] Where [前缀] = '" & pf & "'"
Do
    Key = cmd1.ExecuteScalar() '从后台获得顺序号
    cmd2.commandText = "Update [编号] Set [顺序号] = " & (Key + 1) & " Where [顺序号] = " & Key & " And [前缀] = '" & pf & "'"
    If cmd2.ExecuteNonQuery() > 0 Then '更新顺序号
        Exit Do '更新成功则退出循环
    End If
Loop
e.DataRow("编号") = pf & "-" & Format(Key,"0000")

刚才按照例程重做了一遍,保存后仍然显示不存在名为“编号”的数据源。表或项目事件少东西了?

项目事件:

BeforeConnectOuterDataSource

AfterOpenProject

表事件:

BeforeSaveDataRow

DataRowAdding


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/5/23 18:14:00 [只看该作者]

用这个方法:

http://www.foxtable.com/help/topics/1485.htm

 

看看那一行出错,测试的时候,修改一行数据,然后保存。


 回到顶部
帅哥哟,离线,有人找我吗?
syzsyk
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:274 积分:2303 威望:0 精华:0 注册:2008/9/12 16:46:00
  发帖心情 Post By:2013/5/24 18:05:00 [只看该作者]

整个检查了,发现是数据源问题,数据.mdb无法连接上,服务器在一个局域网内部,我在外网操作,数据.mdb应该在我外网的电脑上还是在服务器上?

 回到顶部
总数 13 1 2 下一页