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


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

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

帅哥哟,离线,有人找我吗?
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

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


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


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

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

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


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

我用的是外网。MSSQL。

 回到顶部
帅哥哟,离线,有人找我吗?
syzsyk
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | 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
详细错误信息:
调用的目标发生了异常。
未将对象引用设置到对象的实例。


 回到顶部
帅哥哟,离线,有人找我吗?
syzsyk
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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


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


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

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

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


加好友 发短信
等级:童狐 帖子:274 积分:2303 威望:0 精华:0 注册:2008/9/12 16:46:00
  发帖心情 Post By:2013/5/26 10:40:00 [显示全部帖子]

我就是外网使用sql server,按照网络环境下的复杂编号例程在外网情况下应该修改哪些地方?下面红色部分要修改吧?怎么修改?这一块不懂请大家帮助。
If e.name = "编号" Then
    e.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & e.ProjectPath & "编号.mdb;Persist Security Info=False"
End If

 回到顶部