Foxtable(狐表)用户栏目专家坐堂 → 请问大神们在SQLTable不能使用网络环境下的复杂编号这个功能吗?


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

主题:请问大神们在SQLTable不能使用网络环境下的复杂编号这个功能吗?

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


加好友 发短信
等级:三尾狐 帖子:635 积分:6336 威望:0 精华:0 注册:2011/5/8 13:21:00
请问大神们在SQLTable不能使用网络环境下的复杂编号这个功能吗?  发帖心情 Post By:2013/11/20 13:13:00 [显示全部帖子]

问题RT,使用下面代码再SQLTable中的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(
"日期"),"yyMM") '否则获得编号的前缀,两位年,两位月
End
If
Dim
cmd1 As New SQLCommand
Dim
cmd2 As New SQLCommand
Dim
Key As Integer
cmd1.ConnectionName =
"编号" '设置数据源名称
cmd2.ConnectionName =
"编号"
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")

 

补充一下,为什么再这里的表明用[]括号起来呢?而不是用{}

[此贴子已经被作者于2013-11-20 13:15:21编辑过]

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


加好友 发短信
等级:三尾狐 帖子:635 积分:6336 威望:0 精华:0 注册:2011/5/8 13:21:00
  发帖心情 Post By:2013/11/20 13:34:00 [显示全部帖子]

Update [编号] Set 这种地方应该是表名,不是还是用的[]吗?

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


加好友 发短信
等级:三尾狐 帖子:635 积分:6336 威望:0 精华:0 注册:2011/5/8 13:21:00
  发帖心情 Post By:2013/11/20 13:39:00 [显示全部帖子]

知道原因了,谢谢~~~  原因是我自己的错误

 回到顶部