佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1156|回复: 5

VB.NET疑问

[复制链接]
发表于 24-3-2013 09:36 PM | 显示全部楼层 |阅读模式
请问下这个Code的问题在哪里?当我输入 ID,Pass,FirstName都符合Database但是Last那么不符合的话它也会成功进入Insert Data的情况然后会出现error因为有些Data重复了.


Dim DBCon As OleDbConnection = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Kini\Documents\Visual Studio 2010\Projects\WindowsApplication1\WindowsApplication1\bin\Debug\VB.accdb")
            Dim cmd As OleDbCommand = New OleDbCommand("SELECT * FROM Staff WHERE StaffID ='" & txtStaffID.Text & "' and Password = '" & txtPass.Text & "' and  UserFirstName= '" & txtFN.Text & "' and UserLastName= '" & txtLN.Text & "'", DBCon)
            DBCon.Open()
            Dim sdr As OleDbDataReader = cmd.ExecuteReader()
            If (sdr.Read() = True) Then
                MessageBox.Show("The data entered already exist!", "System Information")
                sdr.Close()
                DBCon.Close()
            ElseIf (sdr.Read() = False) Then
                Dim cmd2 As String
                Dim DBCon2 As OleDbConnection = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Kini\Documents\Visual Studio 2010\Projects\WindowsApplication1\WindowsApplication1\bin\Debug\VB.accdb")
                cmd2 = "INSERT INTO Staff Values ( '" & txtStaffID.Text & "', '" & txtPass.Text & "','" & txtFN.Text & "', '" & txtLN.Text & "')"
                Dim sdr2 As OleDbCommand
                sdr2 = New OleDbCommand(cmd2, DBCon2)
                DBCon2.Open()
                Dim objcmd As OleDbCommand
                objcmd = New OleDbCommand(cmd2, DBCon2)
                objcmd.ExecuteNonQuery()
                DBCon2.Close()
                valid5 = True
            End If
        End If
回复

使用道具 举报


ADVERTISEMENT

发表于 1-4-2013 12:42 AM | 显示全部楼层
建议你使用ExecuteNonScalar来代替ExecuteReader.

如果ExecuteNonScalar值为0,表示没有找到结果。

我没有VS,只能凭记忆,ExecuteNonScalar只搜索第一行第一列的数据,符合你的需求。
如果使用ExecuteReader,我想是不是会有.RowCount之类的函数?
回复

使用道具 举报

发表于 1-4-2013 12:44 AM | 显示全部楼层
补充一下,你的SELECT * FROM……必须更改为SELECT COUNT(*) FROM……。
回复

使用道具 举报

 楼主| 发表于 1-4-2013 10:43 PM | 显示全部楼层
求救孤星 发表于 1-4-2013 12:44 AM
补充一下,你的SELECT * FROM……必须更改为SELECT COUNT(*) FROM……。

問題解決了~但是不需要換哦!現在苦惱Update的Stament怎樣也不對
回复

使用道具 举报

发表于 1-4-2013 11:00 PM | 显示全部楼层
心情写照 发表于 1-4-2013 10:43 PM
問題解決了~但是不需要換哦!現在苦惱Update的Stament怎樣也不對

可以让我帮忙过目一下你的UPDATE SQL STATEMENT吗?
回复

使用道具 举报

 楼主| 发表于 1-4-2013 11:32 PM | 显示全部楼层
求救孤星 发表于 1-4-2013 11:00 PM
可以让我帮忙过目一下你的UPDATE SQL STATEMENT吗?

你要整個code還是只是Statement?
回复

使用道具 举报

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

本版积分规则

 

ADVERTISEMENT


本周最热论坛帖子本周最热论坛帖子

ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 27-9-2025 03:03 PM , Processed in 0.120709 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表