请问如何判断表中数据已存在??
在textbox里输入姓名,如何判断表里是否已经有该记录?
If exists( "select * from table1 where name= ' " & textbox.Text & " ' ") Then... 大概就是想实现上面这个功能,请问如何改正??
[解决办法]
' 其实如果是name不能重复的话,把name设为主健就好,
' 主健重复时会抛出错误,捕捉处理就好了
' 如果不行的话,就如下吧,会比较麻烦
' 就是先查一次,如果没有重复纪录就写入
Imports System.Data.OleDb ' 用Access数据作例子
Public Class Form1
Dim conn As OleDbConnection
Dim comm As OleDbCommand
Dim dr As OleDbDataReader
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
conn = New OleDbConnection( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:/数据库.mdb ")
conn.Open()
Dim strSQL As String = "SELECT * FROM 表名 WHERE 项目名= ' " & TextBox1.Text & " ' "
comm = New OleDbCommand(strSQL, conn)
dr = comm.ExecuteReader
If dr.Read Then
' 如果纪录存在时处理
Else
' 如果纪录不存在处理
End If
End Sub
End Class
[解决办法]
SQL语句这样写没问题了
"select * from table1 where name= ' " & textbox.Text & " ' "
你再对dataset做个判断就可以了
dataset.tables(0).rows.count> 0 说明是存在该数据
[解决办法]
select count(*) from table1 where name= ' " & textbox.Text & " ' "
用ADO.NET DbCommand.ExecuteScaler 获取查询结果
Dim strSql As String = "select count(*) from table1 where name= '{0} ' "
strSql = String.Format(strSql, textbox.Text)
Dim objComm As OleDbCommand = New OleDbCommand(objConn, strSql)
Dim ret As Integer = CType(objComm.ExecuteScaler(), Integer)
If ret > 0 Then
'表里已经有该记录
End