Facebook Sharer
选择您要替换的背景颜色:
【农历新年】背景图片:
个性化设定
 注册  找回密码
查看: 2249|回复: 9
打印 上一主题 下一主题

很急~VB TRY CATCH~END TRY 问题~

[复制链接]

17

主题

2

好友

129

积分

高级会员

Rank: 3Rank: 3Rank: 3

跳转到指定楼层
1#
发表于 2011-7-17 03:27 PM |只看该作者 |倒序浏览
很急~VB TRY CATCH~END TRY 问题~
  Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
If txtID.Text <> "" Then
strsql = "insert into Table1 (stfID,staffname,staffage,staffadd,staffposition,staffsex,stafftime) values ('" _
           & txtID.Text & "','" _
           & txtName.Text & "','" _
            & txtAge.Text & "','" _
       & txtAddress.Text & "','" _
          & txtPosition.Text & "','" _
     & txtSex.Text & "','" _
        & txtTime.Text & "')"
            MsgBox("Saved")
        Else
            MsgBox("invalid", vbCritical)

        End If

        Dim acscmd As New OleDb.OleDbCommand
        acscmd.CommandText = strsql
        acscmd.Connection = acsconn
        acsda.SelectCommand = acscmd
        acsdr = acscmd.ExecuteReader
        acscmd.ExecuteNonQuery()
        acscmd.Dispose()

        Me.filllistview()
    End Sub
这是小弟的CODING
想请问下
如果要用TRY CATCH ENDTRY确保当同样的ID时不能被SAVE??
因为如果同样的ID SAVE了会有RUNTIME ERROR
请问要如何解决此问题呢?
谢谢




收藏收藏0

62

主题

5

好友

3715

积分

本站名嘴

Rank: 11Rank: 11

2#
发表于 2011-7-18 09:19 PM |只看该作者
在出现runtime error的部分try catch...


回复

使用道具 举报

46

主题

6

好友

6456

积分

百变名嘴

Rank: 13Rank: 13Rank: 13Rank: 13

3#
发表于 2011-7-18 10:48 PM |只看该作者
那么急?????
----------------------------------------------------------------------------------------------------------------------------------------------

简单。

在database内 set ID = unique.

那么同样的资料就会 throw exception.


回复

使用道具 举报

16

主题

0

好友

41

积分

初级会员

Rank: 1

4#
发表于 2011-7-19 01:40 PM |只看该作者
如果 stfID 是user keyin 的,你可以写:

sql = "select * from table1 where stfid = '" & txtid.text & "' "
if  ds.tables(0).rows.count > 0 then
msgbox("invalid staff id")
else
sql insert command
end if


回复

使用道具 举报

16

主题

0

好友

41

积分

初级会员

Rank: 1

5#
发表于 2011-7-19 01:52 PM |只看该作者
通常stfid 是 autogenerate 的。比如,IT001, IT002, ACC001,ACC002,HR001,HR002
这样就不会出现duplicate staffid 了。如果是出现duplicate data, 用 try catch 不是最好的方法,因该check 你的 program 错在哪里。


回复

使用道具 举报

17

主题

2

好友

129

积分

高级会员

Rank: 3Rank: 3Rank: 3

6#
发表于 2011-7-23 01:53 PM |只看该作者
SOLVE 到了。谢谢帮忙。
还有一个问题就是我想问
概念大概是这样。
CAR PARK PARKINg ticketing system
每当读取DATABASE 里的资料,就会在其户口扣取钱。
比如说, 每当RFID TAGS 被SCAN 到时,DATABASE里有一个FIELD我命它为BALANCE. BALANCE 会减少。应该如何下手呢?
谢谢
balance = balance - 10.
大概这样~


回复

使用道具 举报

16

主题

0

好友

41

积分

初级会员

Rank: 1

7#
发表于 2011-7-27 09:52 PM |只看该作者
If RFIDTags= True then
select balance  from balancedatabase
If balance >10 then
balance = balance - 10
else
msgbox("Please top up your amount")
end if
End if


回复

使用道具 举报

46

主题

6

好友

6456

积分

百变名嘴

Rank: 13Rank: 13Rank: 13Rank: 13

8#
发表于 2011-7-28 08:07 PM |只看该作者
很奇怪, 你竟然都已经会把 Balance Select 出来了, 那么RFID Scan 了 Event 你 Catch 到了, Select Data, 扣掉 Balance 然后再 save 回去 database。

你都会 query + hardware integration 了, 那么还有什么难度呢?


回复

使用道具 举报

17

主题

2

好友

129

积分

高级会员

Rank: 3Rank: 3Rank: 3

9#
发表于 2011-9-1 09:01 PM |只看该作者
谢谢~帮满~


回复

使用道具 举报

1

主题

0

好友

98

积分

中级会员

Rank: 2Rank: 2

10#
发表于 2011-12-10 02:50 PM |只看该作者
别用try and catch .

建议你先用select command 查找user 输入的user id.
如果user id 存在在database 里, 可以告诉user 说不能用。


 用try and catch 会把任何error 都抹杀掉


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

JBTALKS.CC |联系我们 |隐私政策 |Share

GMT+8, 2024-7-7 09:12 PM , Processed in 0.097779 second(s), 27 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

Ultra High-performance Dedicated Server powered by iCore Technology Sdn. Bhd.
Domain Registration | Web Hosting | Email Hosting | Forum Hosting | ECShop Hosting | Dedicated Server | Colocation Services
本论坛言论纯属发表者个人意见,与本论坛立场无关
Copyright © 2003-2012 JBTALKS.CC All Rights Reserved
合作联盟网站:
JBTALKS 马来西亚中文论坛 | JBTALKS我的空间 | ICORE TECHNOLOGY SDN. BHD.
回顶部