如何在sql server数据库中插入时间 [英] How to insert time into sql server database

查看:205
本文介绍了如何在sql server数据库中插入时间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试创建一个将事件详细信息保存到sql server数据库中的表单。当我运行时,我得到此错误("无法将参数值从字符串转换为日期时间。")。这是用户界面。请帮忙!


这是我用过的sql代码


CREATE TABLE [dbo]。[events](

   [ENAME] VARCHAR(50)NOT NULL,

    [ETYPE] VARCHAR(50)NOT NULL,

   [EDATE] DATE      NOT NULL,

    [STIME] DATETIME    NOT NULL,

   [ETIME] DATETIME    NOT NULL,

   [ECODE] VARCHAR(50)NOT NULL,

   [EPIC]  IMAGE     NOT NULL,

  约束[PK_Table] PRIMARY KEY CLUSTERED([ECODE] ASC)

);

以下是保存按钮的代码


  Dim ms As New MemoryStream()

        Dim cs As String

        Dim dt As New DataTable

        cs =" Server = COLLOHDICEY-PC;数据库= studentaffairs; Integrated security = true"

        con =新的SqlConnection(cs)

        con.Open()

       如果txtename.Text =""或者txtetype.Text =""或者edate.Text =""或者estart.Text =""或者eend.Text =""或者txtecode.Text =""然后

            MsgBox("事件注册数据未完成",MsgBoxStyle.OkOnly)

       否则

            cmd =新的SqlCommand("插入事件(ENAME,ETYPE,EDATE,STIME,ETIME,ECODE,EPIC)值(@ ename,@ type,@ edate,@ time,@ etime,@ ecode,@ epic)" ,con)



            PictureBox1.Image.Save(ms,PictureBox1.Image.RawFormat)

            cmd.Parameters.Add(" @ ename",SqlDbType.VarChar).Value = txtename.Text

            cmd.Parameters.Add(" @ etype",SqlDbType.VarChar).Value = txtetype.Text

            cmd.Parameters.Add(" @ edate",SqlDbType.Date).Value = edate.Text

            cmd.Parameters.Add(" @ stime",SqlDbType.DateTime).Value = estart.Text

            cmd.Parameters.Add(" @ etime",SqlDbType.DateTime).Value = eend.Text

            cmd.Parameters.Add(" @ ecode",SqlDbType.VarChar).Value = txtecode.Text

            cmd.Parameters.Add(" @ epic",SqlDbType.Image).Value = ms.ToArray()

           如果cmd.ExecuteNonQuery()= 1则为
                MessageBox.Show(" Image Inserted")

           否则

                MessageBox.Show(" Image Not Inserted")

           结束如果

       结束如果

        con.Close()




msdn account collohdicey

解决方案

尝试使用
而不是文字(在几个地方):


  
cmd.Parameters.Add(" @ edate",SqlDbType.Date).Value = edate.Value


i am trying to create a form that saves event details into an sql server database. When i run i get this error("Failed to convert parameter value from a String to a DateTime."). Here is the user interface. Please help!

Here is the sql code i have used

CREATE TABLE [dbo].[events] (
    [ENAME] VARCHAR (50) NOT NULL,
    [ETYPE] VARCHAR (50) NOT NULL,
    [EDATE] DATE         NOT NULL,
    [STIME] DATETIME     NOT NULL,
    [ETIME] DATETIME     NOT NULL,
    [ECODE] VARCHAR (50) NOT NULL,
    [EPIC]  IMAGE        NOT NULL,
    CONSTRAINT [PK_Table] PRIMARY KEY CLUSTERED ([ECODE] ASC)
);

And here is the code for the save button

  Dim ms As New MemoryStream()
        Dim cs As String
        Dim dt As New DataTable
        cs = "Server = COLLOHDICEY-PC; Database = studentaffairs; Integrated security = true"
        con = New SqlConnection(cs)
        con.Open()
        If txtename.Text = "" Or txtetype.Text = "" Or edate.Text = "" Or estart.Text = "" Or eend.Text = "" Or txtecode.Text = "" Then
            MsgBox("Event Registration Data Is Not completed", MsgBoxStyle.OkOnly)
        Else
            cmd = New SqlCommand("Insert Into events(ENAME, ETYPE, EDATE, STIME, ETIME, ECODE, EPIC) Values(@ename, @etype, @edate, @stime, @etime, @ecode, @epic )", con)

            PictureBox1.Image.Save(ms, PictureBox1.Image.RawFormat)
            cmd.Parameters.Add("@ename", SqlDbType.VarChar).Value = txtename.Text
            cmd.Parameters.Add("@etype", SqlDbType.VarChar).Value = txtetype.Text
            cmd.Parameters.Add("@edate", SqlDbType.Date).Value = edate.Text
            cmd.Parameters.Add("@stime", SqlDbType.DateTime).Value = estart.Text
            cmd.Parameters.Add("@etime", SqlDbType.DateTime).Value = eend.Text
            cmd.Parameters.Add("@ecode", SqlDbType.VarChar).Value = txtecode.Text
            cmd.Parameters.Add("@epic", SqlDbType.Image).Value = ms.ToArray()
            If cmd.ExecuteNonQuery() = 1 Then
                MessageBox.Show("Image Inserted")
            Else
                MessageBox.Show("Image Not Inserted")
            End If
        End If
        con.Close()


msdn account collohdicey

解决方案

Try using Value instead of Text (in several places):

   cmd.Parameters.Add("@edate", SqlDbType.Date).Value = edate.Value


这篇关于如何在sql server数据库中插入时间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆