SQL Server:存储来自VB.NET的数据

用户名

我有一个大问题。我必须在SQL Server数据库中存储日期时间和值。

我写了一个网站,其中包含带有条目的表。

一项包含:日期,时间和值

例如:

    条目A:-> 2014年1月1日-2014年7月6日,00:00-07:15,值:450
    条目A:-> 01.01.2014-07.06.2014,07:30-15:30,价值:230
    条目A:-> 01.01.2014-07.06.2014,15:45-23:45,价值:300

    条目B:-> 2014年1月1日-2014年7月6日,00:00-02:15,值:130
    条目B:-> 2014年1月1日-2014年7月6日,02:30-10:45,值:250
    条目B:-> 2014年1月1日-2014年6月7日,11:00-23:45,值:340

    条目C ... 

对于该范围内的每个日期时间,每步在15分钟内存储一个值:

例如,数据库应如下所示:

    01.01.2014 00:00:00 | 450 | 条目A
    01.01.2014 00:15:00 | 450 | 条目A
    ..
    ..
    01.01.2014 07:15:00 | 450 | 条目A
    01.01.2014 07:30:00 | 230 | 条目A
    2014年1月1日07.45:00 | 230 | 条目A
    ..
    ..
    01.01.2014 15:30:00 | 230 | 条目A
    01.01.2014 15:45:00 | 300 | 条目A
    01.01.2014 16:00:00 | 300 | 条目A
    ..
    ..
    01.01.2014 23:45:00 | 300 | 条目A
    01.01.2014 07:30:00 | 300 | 条目A
    ..
    ..
    01.01.2014 07:15:00 | 230 | 条目A
    01.01.2014 07:30:00 | 230 | 条目A
    ..
    ..
    2014年2月1日...

对于每个条目以及直到结束的每一天都是一样的。

我认为问题出在很多插件上。在五个月的时间里,每天每隔15分钟进行三项输入。

我写了两个脚本,两个都在工作。但是保存条目需要很长时间。

脚本1:我已经直接在VB中执行了SQL语句。

 Dim cmd As DbCommand = New SqlCommand()
 cmd.CommandType = Data.CommandType.Text
 Temp2 = DateTime.Parse(DateStart+ " " + TimeStart)
 Temp3 = DateTime.Parse(DateBegin+ " " + TimeBegin)

 While (Temp2 <= Temp3)
       Date = Temp2
       Temp1 = Temp3

       While (Temp <= Temp1)
             cmd.CommandText = "INSERT INTO [dbo].[_Table_Data]([pr_id],[pr_Nr],[Date],[Value],[nvv]) VALUES (" & pr_id & "," & pr_nr & ", '" & Date & "', " & Value & " , '" & Entry &"')"
             cmd.Connection = con
             con.Open()
             Dim dr As SqlDataReader = cmd.ExecuteReader

             While (dr.Read())
                   '    save entrys
             End While

             con.Close()
             Temp = DateAdd(DateInterval.Minute, 15, Temp)
       End While

       Temp2 = DateAdd(DateInterval.Day, 1, Temp2)
  End While

第二个脚本是一个SQL过程,我将值和日期发送到了SQL过程。但是没有成功,更糟糕的是第一个脚本。

我也尝试过CTE

;with cte as
(
   select DATEADD(MONTH,DATEDIFF(MONTH,0,@StDate),0) as Sdate 
   union all
   select DATEADD(MINUTE,15,SDate) from cte where SDate < @Enddate
)

但是在这种情况下,我只有一个开始日期和一个结束日期。如果我必须将01.01.2014-06.06.2014使用一个值,则效果很好。但是在不同的时间,我不能使用它。

请帮助,我需要一个非常快速的解决方案。

用户名

我只是再次尝试了CTE。以下代码是我的解决方案,效果很好。现在,我只需要编写一个过程并传递参数。

谢谢大家的阅读和支持

declare @StDate datetime = '01/01/2013 00:00.000'
declare @Enddate datetime = '07/07/2043 00:00.000'
declare @stime datetime = '00:00:00'
declare @etime datetime = '23:45:00'

declare @value as int = 387
declare @id as int = 999


;with cte as
(
 select DATEADD(MINUTE,DATEDIFF(Minute,0,@stime),0) as Stime
 union all
 select DATEADD(MINUTE,15,Stime) from cte where Stime < @etime

 ), cte2 as (
 select DATEADD(MONTH,DATEDIFF(MONTH,0,@StDate),0) as Sdate 
 union all
 select DATEADD(day,1,SDate) from cte2 where SDate < @Enddate
 ) 

Insert into [dbo].[_DV_Prognose_Werte_Temp](pr_id,prognosen_Nummer,zeitstempel,[time],leistungsprognose,nvv) (select '1','1',  Combined = CAST(SDate AS DATETIME) + CAST(stime AS DATETIME),stime, @value,'2' from cte cross join cte2)
OPTION (maxrecursion 0)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

VB.net获取SQL Server存储过程结果

来自分类Dev

VB .Net,SQL Server 2012 Express数据库连接

来自分类Dev

VB .Net,SQL Server 2012 Express数据库连接

来自分类Dev

来自数据的 SQL Server 表列

来自分类Dev

来自 VB.net 的 SQL 子查询

来自分类Dev

从SQL查询到vb.net的数据

来自分类Dev

从vb.net创建SQL Server数据库,而无需使用SQL Server

来自分类Dev

从vb.net创建SQL Server数据库,而不使用SQL Server

来自分类Dev

如何在vb.net代码中使用SQL Server存储过程中的OUT参数

来自分类Dev

在VB.NET中调用自定义SQL Server存储过程和URL重定向

来自分类Dev

如何在vb.net代码中使用SQL Server存储过程中的OUT参数

来自分类Dev

将结果集从SQL Server存储过程返回到vb.net

来自分类Dev

如何在vb.net组合框中获取SQL Server存储过程的结果?

来自分类Dev

来自vb.net的水晶报表中没有数据显示,使用SQL的数据集

来自分类Dev

用来自SQL Server的数据填充ComboBox

来自分类Dev

避免来自SQL Server的重复xml数据

来自分类Dev

来自PowerShell的.Net SQL Server查询

来自分类Dev

Datagridview显示没有数据vb.net与SQL Server

来自分类Dev

备份和保存SQL Server数据库的VB.Net代码不起作用

来自分类Dev

使用vb.net 2008和SQL Server数据库的Crystal Reports

来自分类Dev

在ASP.NET(VB)中编辑SQL Server数据库(INSERT,UPDATE等)

来自分类Dev

如何使用vb.net将MS Access数据导入SQL Server

来自分类Dev

VB.NET在VS2013或SQL Server Management Studio中创建本地数据库

来自分类Dev

如何从vb.net Windows窗体应用程序访问远程SQL Server数据库

来自分类Dev

我无法使用VB.NET连接到我的SQL Server数据库

来自分类Dev

使用VB.NET将Unicode /字符集数据插入SQL Server 2012

来自分类Dev

VB.Net 在将数据保存到 SQL Server 时触发错误

来自分类Dev

VB.NET用SQL Server数据库显示datagridview

来自分类Dev

使用 VB.Net 应用程序将 Excel 数据导入 SQL Server 表

Related 相关文章

  1. 1

    VB.net获取SQL Server存储过程结果

  2. 2

    VB .Net,SQL Server 2012 Express数据库连接

  3. 3

    VB .Net,SQL Server 2012 Express数据库连接

  4. 4

    来自数据的 SQL Server 表列

  5. 5

    来自 VB.net 的 SQL 子查询

  6. 6

    从SQL查询到vb.net的数据

  7. 7

    从vb.net创建SQL Server数据库,而无需使用SQL Server

  8. 8

    从vb.net创建SQL Server数据库,而不使用SQL Server

  9. 9

    如何在vb.net代码中使用SQL Server存储过程中的OUT参数

  10. 10

    在VB.NET中调用自定义SQL Server存储过程和URL重定向

  11. 11

    如何在vb.net代码中使用SQL Server存储过程中的OUT参数

  12. 12

    将结果集从SQL Server存储过程返回到vb.net

  13. 13

    如何在vb.net组合框中获取SQL Server存储过程的结果?

  14. 14

    来自vb.net的水晶报表中没有数据显示,使用SQL的数据集

  15. 15

    用来自SQL Server的数据填充ComboBox

  16. 16

    避免来自SQL Server的重复xml数据

  17. 17

    来自PowerShell的.Net SQL Server查询

  18. 18

    Datagridview显示没有数据vb.net与SQL Server

  19. 19

    备份和保存SQL Server数据库的VB.Net代码不起作用

  20. 20

    使用vb.net 2008和SQL Server数据库的Crystal Reports

  21. 21

    在ASP.NET(VB)中编辑SQL Server数据库(INSERT,UPDATE等)

  22. 22

    如何使用vb.net将MS Access数据导入SQL Server

  23. 23

    VB.NET在VS2013或SQL Server Management Studio中创建本地数据库

  24. 24

    如何从vb.net Windows窗体应用程序访问远程SQL Server数据库

  25. 25

    我无法使用VB.NET连接到我的SQL Server数据库

  26. 26

    使用VB.NET将Unicode /字符集数据插入SQL Server 2012

  27. 27

    VB.Net 在将数据保存到 SQL Server 时触发错误

  28. 28

    VB.NET用SQL Server数据库显示datagridview

  29. 29

    使用 VB.Net 应用程序将 Excel 数据导入 SQL Server 表

热门标签

归档