我需要以格式
在数据库中添加当前的date.timedd / MM / yyyy HH:mm
这种没有格式化的方式很有效
Public Sub AddIt(Name As String)
Try
Dim addString As String = "Insert into table (Name, DateAdd) values ('" & Name & "', '" & Date.Now & "')"
sqlcon.Open()
SqlCom = New SqlCommand(addString, sqlcon)
SqlCom.ExecuteNonQuery()
sqlcon.Close()
Catch ex As Exception
End Try
End Sub
尝试使用格式化参数
Public Sub Town(Name As String)
Try
Dim time As DateTime = DateTime.Now
Dim format As String = "dd.MM.yyyy HH:mm"
Dim MyCommand As SqlCommand
MyCommand = New SqlCommand("Insert into test (Name, DateAdd) values (@name, @test)", sqlcon)
MyCommand.Parameters.AddWithValue("@name", form2.txtName.Text)
MyCommand.Parameters.AddWithValue("@test", time.ToString(format))
sqlcon.Open()
MyCommand.ExecuteNonQuery()
sqlcon.Close()
Catch ex As Exception
End Try
End Sub
它说连接没有关闭。连接状态是打开的
答案 0 :(得分:2)
我怀疑为什么你需要以这种格式在数据库中的日期和时间 - 将完整的Date对象存储在数据库中会更容易,如第一个代码片段所示,然后每当你检索该数据,使用DateTime.toString("dd/MM/yyyy HH:mm")
我感觉你当前的问题是由前一个异常引起的 - 具体来说,因为你的异常处理中没有包含任何代码,如果由于SQL语句失败而发生异常,连接将保持打开状态 - 导致下一次打开的呼叫失败。
您可以通过在尝试重新打开连接状态之前检查连接状态来解决此问题 - SqlConnection
公开ConnectionState
属性,您可以检查该连接是否已打开。
答案 1 :(得分:0)
在初始化SQLcommand
Public Sub Town(Name As String)
Try
Dim time As DateTime = DateTime.Now
Dim format As String = "dd.MM.yyyy HH:mm"
sqlcon.Open()
Dim MyCommand As SqlCommand
MyCommand = New SqlCommand("Insert into test (Name, DateAdd) values (@name, @test)", sqlcon)
MyCommand.Parameters.AddWithValue("@name", form2.txtName.Text)
MyCommand.Parameters.AddWithValue("@test", time.ToString(format))
MyCommand.ExecuteNonQuery()
sqlcon.Close()
Catch ex As Exception
End Try
End Sub