如何在sql server数据库中插入时间 [英] How to insert time into sql server database
本文介绍了如何在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屋!
查看全文