在 SQL/VB/Asp.Net 中更新日期
Posted
技术标签:
【中文标题】在 SQL/VB/Asp.Net 中更新日期【英文标题】:Updating date in SQL/VB/Asp.Net 【发布时间】:2015-10-23 13:45:21 【问题描述】:在这方面我几乎是个新手。我知道一点。只是试图将日期存储在 SQL 数据库中。我在下面的代码中暂时将其设置为06/06/2015
,以查看是否可以对其进行更新,但它会将其更新为01/01/0001
。当我怀疑它时,我真正想要存储的值是今天的日期加上 6 个月。 EG:如果它今天是31/07/2015
,我希望它存储31/01/2016
。任何人都可以帮忙吗?非常感谢...
ASPX.VB
Protected Sub imgBtnDatechange_Click(sender As Object, e As ImageClickEventArgs) Handles imgBtn.Click
Dim acc As New accounts(Membership.GetUser().ProviderUserKey)
Dim adjustedDate as Date = "06/06/2015"
acc.UpdateVipEndDate(acc.accountID, acc.adjustedDate)
End Sub
ACCOUNTS.VB
Public Property adjustedDate As Date
Public Sub UpdateVipEndDate(ByVal accountID As Guid, ByVal adjustedDate As Date)
Dim DBConnect As New DBConn
Using db As DbConnection = DBConnect.Conn("DBConnectionString")
Dim cmd As SqlCommand = DBConnect.Command(db, "UpdateVipEndDate")
cmd.Parameters.Add(New SqlParameter("accountID", SqlDbType.UniqueIdentifier, ParameterDirection.Input)).Value = accountID
cmd.Parameters.Add(New SqlParameter("newadjustedDate", SqlDbType.Date, ParameterDirection.Input)).Value = adjustedDate
db.Open()
cmd.ExecuteNonQuery()
cmd.Dispose()
cmd = Nothing
db.Dispose()
db.Close()
End Using
End Sub
存储过程
CREATE PROCEDURE [UpdateVipEndDate]
@accountID uniqueidentifier,
@newadjustedDate date
AS
BEGIN
UPDATE tblAccounts SET [vipEndDate] = @newadjustedDate WHERE [accountID] = @accountID
END
【问题讨论】:
【参考方案1】:您在这里设置了日期:
Dim adjustedDate as Date = "06/06/2015"
但你永远不会在任何地方使用那个变量。相反,您在 acc
对象上使用了一个参数:
acc.UpdateVipEndDate(acc.accountID, acc.adjustedDate)
因此,acc.adjustedDate
值可能为空或一些默认的MinDate
值。
您似乎在这里混淆了一些事情......
-
如果某物是
Date
,则将其用作Date
。不是String
。
如果UpdateVipEndDate
方法是on acc
对象,为什么需要将它的引用传递给它自己的参数?它应该能够在方法内部访问这些值。
不过,我可能在这里下车了。似乎最简单的事情是不使用局部变量,而使用您在其他地方使用的对象成员:
acc.adjustedDate = "06/06/2015"
【讨论】:
感谢大卫的回复...哦,我现在有点迷路了。一旦我看到解决方案,我就会确切地知道发生了什么,但我只学了一两天。我知道存储过程有效,这是我无法理解的 VB 代码。如果您或任何人可以为我调整它,我会更清楚。我给你烤个蛋糕.. 我很擅长 ;-) @Eggybread:我不确定您还在寻找什么。你试过我的建议了吗?不要创建一个新的局部变量来保存日期(您的代码正在做什么),而是在您实际传递给方法的对象变量上设置日期。 对不起,第一次没有关注你,但我现在明白你在说什么了。刚刚试了一下,现在说 BC30311:“布尔”类型的值无法转换为“日期”。 啊.. 使用 ToString 并且它有效。非常感谢大卫。以上是关于在 SQL/VB/Asp.Net 中更新日期的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET MVC 视图需要将选定的下拉列表和日历日期传递给模型
更新页面的一部分以显示“新闻”(不使用数据库)Asp.net C#
以不同语言显示引导日期选择器日期,然后在 asp.net razor 视图中以英文提交日期