allbluekos
allbluekos
2015-04-28 13:05
采纳率: 88.5%
浏览 15.9k
已采纳

往数据库新增一条记录insert into之前,先查询判断一下字段里面是否有重复值,怎么实现?

如题,写到这里不知道怎么实现了,请各位大侠指点。
Private Sub Button13_Click(sender As Object, e As EventArgs) Handles Button13.Click
If TextBox1.Text = "" Then
MessageBox.Show("Please input code请输入编号")
Else
mycn.ConnectionString = "server=localhost;database=kos;uid=sa;pwd=0000;"
mycommand.CommandText = "SELECT goodsID from goods where goodsID = " & TextBox1.Text & " "
mycommand.Connection = mycn
Try
mycn.Open()
Dim mysqlreader As Data.SqlClient.SqlDataReader = mycommand.ExecuteReader
mysqlreader.Read()
If mysqlreader.GetInt32(0) = 0 Then
'怎么用插入语句实现?? 放到表GOODS里面,感谢!!!!
Else
MessageBox.Show("编号重复")
End If
Catch ex As Exception
Finally
mycn.Close()
End Try
End If
End Sub
End Class

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

8条回答 默认 最新

  • allbluekos
    allbluekos 2015-04-29 04:21
    已采纳

    自己找到了解决办法,,把MYCN.CLOSE ,就不会提示已经打开了。。。然后写入方法。。。。结贴了
    If (mysqlreader.GetInt32(0)) = 0 Then
    mycn.Close()
    mycommand.CommandText = "insert into series(seriesid,treeid,name,des) values ('" & TextBox1.Text & "','10104','" & TextBox2.Text & "','" & TextBox3.Text & "')"
    mycn.Open()
    mycommand.ExecuteNonQuery()
    If mycommand.ExecuteNonQuery > 0 Then
    TreeView1.Refresh()
    Else
    MessageBox.Show("保存失败")

    点赞 评论
  • gamefinity
    知常曰明 2015-04-28 13:12
     INSERT INTO goods(goodsId,...)VALUES ...
    

    把它写到Command里面。就可以了啊

    点赞 评论
  • new_start_down
    232frb 2015-04-28 13:14

    直接用存储过程实现
    先判断有没有重复值 有重复值不插入 没有重复值插入即可

    点赞 评论
  • allbluekos
    allbluekos 2015-04-28 13:16

    已经试过了,提示COMMAND已经打开,前面的查询语句已经用到一次了,希望大家能够给出详细的实现语句,本人初学。谢谢

    点赞 评论
  • allbluekos
    allbluekos 2015-04-28 13:19

    之前已经用了COMMAND 实现了查询 “select count (goodsid) from goods where goodsid = "&textbox1.text &"” 后面要在调用另外一个命令,另外一个插入语句时候,提示出错了。。。。请热心人给详细语句。。。。感谢!

    点赞 评论
  • caozhy

    Dim str = "select 字段 from 表 where ..."
    SqlCommand cmd = bew SqlCommand(str, mycn)
    Dim count = Val(cmd.ExecuteScalar().ToString())
    if count > 0 Then
    存在
    else
    不存在
    end if

    点赞 评论
  • oyljerry
    oyljerry 2015-04-28 13:51

    把对应字段设置成unique key。然后插入的时候用insert ignore into

    点赞 评论
  • allbluekos
    allbluekos 2015-04-29 00:35

    谢谢大家的提点,查询判断我已经用 select count()实现了,返回0或者1,我的问题是,返回以后,用什么方法实现插入记录。请用代码诠释。谢谢。

    点赞 评论

相关推荐