0

日付を取得してデータベースに追加しようとしています。

これを行うために、私は(サンプルとして..)を使用しています

If vDay = "TUESDAY" Or vDay = "2" Then             
     vDateEnd = DateTime.Now.AddDays(-2)
End If

次に、vDateEnd を SQL に入れたいと思います。「09/16/2012」をハードコードすると動作しますが、(コメントアウトされた行からわかるように) 無駄に遊んでいます。

'report not found so we need to create one
'Create dates in the report if doe not exist
'### Update
Dim ConnectionString3 As String = System.Web.Configuration.WebConfigurationManager.ConnectionStrings("mySQLConnectionString").ConnectionString
Dim dsNames3 As SqlDataSource
Dim sSQL3 As String

dsNames3 = New SqlDataSource
dsNames3.ConnectionString = sConnString

sSQL3 = "spWeeklyReportDatesCreate"

dsNames3.UpdateCommand = sSQL3
dsNames3.UpdateCommandType = SqlDataSourceCommandType.StoredProcedure
dsNames3.UpdateParameters.Clear()
dsNames3.UpdateParameters.Add("DateStart", "09/16/2012")
'dsNames3.UpdateParameters.Add("DateEnd", "09/01/2013")
dsNames3.UpdateParameters.Add("DateEnd", (Mid(Date.Now.AddDays(-2), 1, 10)))
'  dsNames3.UpdateParameters.Add("DateEnd", DateTime.Now.AddDays(-2).ToShortDateString("mm/dd/yyyy"))
dsNames3.UpdateParameters.Add("RunCompleted", "N")
dsNames3.Update()
dsNames3 = Nothing

ストアド プロシージャ

USE [db]
GO
/****** Object:  StoredProcedure [dbo].[spWeeklyReportDatesCreate]    Script Date: 16/09/2013 15:23:37 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[spWeeklyReportDatesCreate]

@DateStart  smalldatetime,
@DateEnd smalldatetime,
@RunCompleted  nvarchar(1)

AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.

INSERT INTO [tblweeklyreports] 

(DateStart, DateEnd,RunCompleted) 
VALUES 
(@DateStart, @DateEnd,@RunCompleted)

--select @AnswerID=@@IDENTITY

END
Datebase - both set to 'datetime' at the moment though all of these parameters have been played with i.e. all SmallDate, DateTime, Date etc... 
4

2 に答える 2

0

よし、うまくいっているようだ..

他の更新コードを入手しましたが、違いが理解できず、なぜ機能しなかったのかを確認できません。理解するだけでどんなアイデアでも素晴らしいでしょう。

 Dim connection As SqlConnection
                Dim command As New SqlCommand
                Dim ds As New DataSet
                Dim ConnectionString As String = System.Configuration.ConfigurationManager.ConnectionStrings("mySQLConnectionString").ToString()
                connection = New SqlConnection(ConnectionString)

                connection.Open()
                command.Connection = connection

                command.CommandText = "spWeeklyReportDatesCreate"
                command.CommandType = CommandType.StoredProcedure
                command.Parameters.AddWithValue("DateStart", SqlDbType.SmallDateTime).Value = "09/16/2012"
                command.Parameters.AddWithValue("DateEnd", SqlDbType.SmallDateTime).Value = DateTime.Parse(Date.Now.AddDays(-2))
                command.Parameters.AddWithValue("RunCompleted", "N")
                command.ExecuteNonQuery()
于 2013-09-17T14:16:46.107 に答える