使用VB.NET插入SQL Server影响数据时间字段的行

使用VB.NET插入SQL Server影响数据时间字段的行,sql,sql-server,vb.net,ado.net,insert,Sql,Sql Server,Vb.net,Ado.net,Insert,我正在尝试在SQL Server上的数据库中插入一行。我正在使用VB.NET和ADO.NET框架。 我希望影响的表的结构如下所示: CREATE TABLE [dbo].[Users]( [UserName] [nvarchar](80) NOT NULL, [Description] [nvarchar](600) NULL, [IDCategory] [int] NULL, [RegistrationDate] [datetime] NOT NULL, [Categ

我正在尝试在SQL Server上的数据库中插入一行。我正在使用VB.NET和ADO.NET框架。 我希望影响的表的结构如下所示:

   CREATE TABLE [dbo].[Users](
  [UserName] [nvarchar](80) NOT NULL,
  [Description] [nvarchar](600) NULL,
  [IDCategory] [int] NULL,
  [RegistrationDate] [datetime] NOT NULL,
  [CategoryFlag] [bit] NULL,
  [TypeFlag] [bit] NULL,
   ...
我已经用以下代码实现了这一点:

 <WebMethod()> _
   Sub insertElement()
     Dim conn As SqlConnection
     Dim sqlcmd As SqlCommand
     Dim res As Integer

     conn = New SqlConnection(Utilities.ConnectionString)
     sqlcmd = New SqlClient.SqlCommand()
     sqlcmd.Connection = conn
     sqlcmd.CommandType = CommandType.Text
     sqlcmd.CommandText = "insert into Users (UserName, RegistrationDate) values (@user, @date)"
     Dim param As SqlParameter
     param = New SqlParameter("@user", "myself")
     sqlcmd.Parameters.Add(param)
     param = New SqlParameter("@date", '2012/10/11 20:30:15')
     sqlcmd.Parameters.Add(param)

     Try
        conn.Open()
        res = sqlcmd.ExecuteNonQuery()
    Catch ex As Exception

    Finally
        sqlcmd.Dispose()
        conn.Close()
    End Try
_
子插入元素()
Dim conn As SqlConnection
将sqlcmd设置为SqlCommand
Dim res作为整数
conn=新的SqlConnection(Utilities.ConnectionString)
sqlcmd=newsqlclient.SqlCommand()
sqlcmd.Connection=conn
sqlcmd.CommandType=CommandType.Text
sqlcmd.CommandText=“插入用户(用户名、注册日期)值(@user、@date)”
作为SqlParameter的Dim参数
param=新的SqlParameter(“@user”,“我自己”)
sqlcmd.Parameters.Add(param)
param=新的SqlParameter(“@date”,“2012/10/11 20:30:15”)
sqlcmd.Parameters.Add(param)
尝试
康涅狄格州公开赛
res=sqlcmd.ExecuteNonQuery()
特例
最后
sqlcmd.Dispose()
康涅狄格州关闭
结束尝试
Utilities.ConnectionString只是我创建的一个类,用于重新调整与数据库关联的ConnectionString

我曾尝试过这样做,但没有影响任何datatime文件,而且成功了。 但是使用上面的代码,在数据时间管理中可能存在错误,因为它不起作用。
有人能帮我吗?

我看不出这一排是怎么回事

param = New SqlParameter("@date", '2012/10/11 20:30:15')
甚至编译,但我想它应该是

param = New SqlParameter("@date", CDate("2012/10/11 20:30:15", CultureInfo.InvariantCulture))
使用
日期时间
值而不是
字符串

我认为您只是通过使用一个空的
catch
块来接受异常


尽管如此,最好使用
using
语句:

using conn = New SqlConnection(Utilities.ConnectionString), sqlcmd = New SqlClient.SqlCommand()
    sqlcmd.Connection = conn
    sqlcmd.CommandType = CommandType.Text
    ...
    res = sqlcmd.ExecuteNonQuery()
End Using

它将自动关闭/处理您的连接等。

那么,有什么问题吗。。。?发生了什么或没有发生什么?然后请编辑您的问题并添加该行。我的数据库中的表“用户”不受插入的影响。但是没有错误返回!有什么例外?删除
catch
块,然后发布错误消息。我解决了问题:与外键约束有关。所以上面的代码是正确的@BigYellowCactus我现在不知道为什么,但它甚至使用以下语句工作:param=New-SqlParameter(“@date”,“2012/10/11 20:30:15”)