Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.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
Vb.net 同时从多台pc向表中插入记录_Vb.net - Fatal编程技术网

Vb.net 同时从多台pc向表中插入记录

Vb.net 同时从多台pc向表中插入记录,vb.net,Vb.net,我想同时从多台pc插入sql server和vb.net中的同一个表中 错误: 同时插入数据时发生冲突 存储过程: ALTER PROCEDURE [dbo].[insertooks] @MULTIINSERT_CODE NVARCHAR(50) = NULL , @MULTIINSERT_NAME NVARCHAR(50) = NULL , @MULTIINSE

我想同时从多台pc插入sql server和vb.net中的同一个表中

错误:

同时插入数据时发生冲突

存储过程:

ALTER  PROCEDURE  [dbo].[insertooks]  
   @MULTIINSERT_CODE                    NVARCHAR(50)  = NULL   ,    
      @MULTIINSERT_NAME                 NVARCHAR(50)  = NULL   ,    
     @MULTIINSERT_DATE                 DATETIME      = NULL   
AS  
BEGIN  
 SET NOCOUNT ON  
 INSERT INTO MULTIINSERT_TB
      (                    
        MULTIINSERT_CODE,  
        MULTIINSERT_NAME,  
       MULTIINSERT_DATE
              
      )

 VALUES 
      ( 
        @MULTIINSERT_CODE  ,
        @MULTIINSERT_NAME ,
        @MULTIINSERT_DATE                
      ) 

 END 

您的连接对象需要在使用它的方法中使用
声明,以便可以关闭和释放它

使用
Using…End-Using
块确保关闭并释放数据库对象。使用
注意
末尾的逗号;这包括使用
中的命令

将连接字符串直接传递给连接的构造函数。同样,将
CommandText
和连接直接传递给命令的构造函数

这应该是
.Add
方法,该方法将
SqlDbType
作为第二个参数。
.AddWithValue
方法(不应与Sql Server一起使用)将该值作为第二个参数

连接打开时,切勿显示消息框。用户可能已经去吃午饭了,而你的开放连接就在那里。实际上,它最终会超时,但你明白了

我希望MULTIINSERT_TB的主键是一个标识字段(自动编号),并且您没有为它传递值

Private ConStr As String = "Your connection string"

Private Sub OpCode()
    Try
        Using con As New SqlConnection(ConStr),
                com As New SqlCommand("insertooks", con)
            com.CommandType = CommandType.StoredProcedure
            com.Parameters.Add("@MULTIINSERT_CODE", SqlDbType.NVarChar).Value = TextBox1.Text
            com.Parameters.Add("@MULTIINSERT_NAME", SqlDbType.NVarChar).Value = TextBox2.Text
            com.Parameters.Add("@MULTIINSERT_DATE ", SqlDbType.Date).Value = DateTimePicker1.Value
            con.Open()
            com.ExecuteNonQuery()
        End Using 'closes and disposes con and com
        MsgBox("Record inserted successfully")
    Catch ex As Exception
        'Throw ex
        MsgBox(ex.Message)
    End Try
End Sub

发布您收到的实际错误消息。因此,我在这里的直觉是,这里还发生了一些事情,这样一个简单的sql插入引起了足够的关注,足以证明这个问题。事实是,冲突是多用户DBs生活中的一个事实,永远无法真正消除。归根结底是在事情发生时处理它。无论如何,我希望这句话能在几秒钟内完成,所以两个用户互相告密的可能性非常小
Private ConStr As String = "Your connection string"

Private Sub OpCode()
    Try
        Using con As New SqlConnection(ConStr),
                com As New SqlCommand("insertooks", con)
            com.CommandType = CommandType.StoredProcedure
            com.Parameters.Add("@MULTIINSERT_CODE", SqlDbType.NVarChar).Value = TextBox1.Text
            com.Parameters.Add("@MULTIINSERT_NAME", SqlDbType.NVarChar).Value = TextBox2.Text
            com.Parameters.Add("@MULTIINSERT_DATE ", SqlDbType.Date).Value = DateTimePicker1.Value
            con.Open()
            com.ExecuteNonQuery()
        End Using 'closes and disposes con and com
        MsgBox("Record inserted successfully")
    Catch ex As Exception
        'Throw ex
        MsgBox(ex.Message)
    End Try
End Sub