Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在向mysql数据库插入数据时获取ID?_Mysql_Vb.net - Fatal编程技术网

如何在向mysql数据库插入数据时获取ID?

如何在向mysql数据库插入数据时获取ID?,mysql,vb.net,Mysql,Vb.net,下面是我的表结构,id是主键,cat_代码是唯一的 -------------------------------------- id cat_code cat_name created_by -------------------------------------- 将数据插入数据库后如何返回id?如果记录不重复,cmd.LastInsertedId可以返回id,但是当记录重复时cmd.LastInsertedId始终返回0,如果记录重复,如何获取实际id

下面是我的表结构,id是主键,cat_代码是唯一的

--------------------------------------
 id   cat_code  cat_name  created_by
--------------------------------------
将数据插入数据库后如何返回id?如果记录不重复,cmd.LastInsertedId可以返回id,但是当记录重复时cmd.LastInsertedId始终返回0,如果记录重复,如何获取实际id

                Dim query As String = "INSERT INTO main_item_cat(cat_code,cat_name,created_by)" &
                                      "VALUES (@cat_code,@cat_name,@created_by)" &
                                      "ON DUPLICATE KEY UPDATE 
                                       cat_code=@cat_code,
                                       cat_name=@cat_name,
                                       created_by=@created_by"

                Using cmd = New MySqlCommand(query, conn)
                    For Each drow As DataRow In dt_main_item_cat.Rows
                        cmd.Parameters.AddWithValue("@cat_code", drow(0).Trim())
                        cmd.Parameters.AddWithValue("@cat_name", drow(1).Trim())
                        cmd.Parameters.AddWithValue("@created_by", g_currUser)
                        cmd.ExecuteNonQuery()
                        cmd.Parameters.Clear()

                        dt_cat_dtl.Rows.Add(cmd.LastInsertedId, drow(0), drow(1))
                    Next
                End Using

检查值是否为0,是否运行select查询以获取项目?如果存在重复项,SQL只会提醒您,它实际上不会返回idCheck值是否为0,以及是否运行select查询以获取该项?SQL只是提醒您,如果存在重复的id,它实际上不会返回该id