【问题标题】:Connecting Calendar control to LINQ database - Visual Studio将日历控件连接到 LINQ 数据库 - Visual Studio
【发布时间】:2012-11-22 17:00:15
【问题描述】:

我有 2 个日历控件“cldStartDate”和“cldEndDate”,它们链接到 2 个文本框“txtStartDate”和“txtEndDate”。选择日期后,这些文本框将保存日期。我正在尝试让我的代码将日期添加到我的数据库中。它有以下字段:

-项目名称 -描述 -开始日期 -结束日期

“StartDate”和“EndDate”在我的数据库中都是 DateTime 类型。有人可以指出我的代码哪里出错了。我想我需要更改代码以将日期值作为 DateTime 传递。有没有人知道我可以如何做到这一点。代码如下。谢谢!

Protected Sub btnAddProject_Click(ByVal sender As Object, ByVal e As System.EventArgs) 处理 btnAddProject.Click

    Dim projectName As String
    Dim projectDescription As String
    Dim startdate As String
    Dim enddate As String

    projectName = txtProjectName.Text
    projectDescription = txtProjectName.Text
    startdate = txtStartDate.Text
    enddate = txtEndDate.Text

    ' check the validity of information entered
    Dim isValid As Boolean
    isValid = True

    If String.IsNullOrEmpty(projectName) Or String.IsNullOrEmpty(projectDescription)     Then
        isValid = False
    End If

    If isValid Then
        'add everything to the database
        Dim db As New AgileClassesDataContext()

        Dim startDate As String
        startDate = DateTime.Parse(startDate)

        Dim endDate As String
        endDate = DateTime.Parse(endDate)

        ' create a project to populate a row in the PROJECT table
        Dim project As New Project With _
        {.ProjectName = projectName, _
         .Description = projectDescription _
         .StartDate = startdate _
         .EndDate = enddate}

        ' add the new project to the PROJECT table
        db.Projects.InsertOnSubmit(project)

        ' submit the changes to the database
        Try
            db.SubmitChanges()
        Catch ex As Exception
            Console.WriteLine(ex)
            db.SubmitChanges()
        End Try'

【问题讨论】:

  • 您目前还没有告诉我们什么是真正的错误
  • 哈哈哇。基本上该项目不会编译。使用以下代码,我得到错误。 'Dim startDate As String startDate = DateTime.Parse(startDate) Dim endDate As String endDate = DateTime.Parse(endDate) Dim project as New Project With _ {.ProjectName = projectName, _ .Description = projectDescription _ .StartDate = startdate _ . EndDate = enddate}' 它表示'StartDate' 和'EndDate' 不是字符串的成员。在我的数据库中,它们是“日期时间”字段,因此我不确定如何将所选日期输入到数据库中的这些字段中
  • 是的,所以你有错误。但是你决定不告诉我们这些错误是什么。请阅读tinyurl.com/so-hints彻底编辑您的问题。
  • 对不起乔恩。正如您可能猜到的那样,我是 SO 新手。我已经发布了一条希望更清晰的消息作为答案。我的问题是我收到“StartDate 不是字符串的成员”错误,EndDate 也是如此。在数据库表中,它们是 DateTime 字段。我有一个日历控件,可以将日期传递给文本框“txtStartDate”。我想将这里的值传递到我的数据库中的“StartDate”字段。我感谢任何建议,并为这种糟糕的写作方式道歉。谢谢
  • 不,不要添加答案,编辑你的问题。

标签: database vb.net linq datetime calendar


【解决方案1】:

怀疑直接的问题是对象初始化器的语法。而不是这个:

Dim project As New Project With _
    {.ProjectName = projectName, _
     .Description = projectDescription _
     .StartDate = startdate _
     .EndDate = enddate}

...你应该在每个属性后面加一个逗号:

Dim project As New Project With { _
    .ProjectName = projectName, _
    .Description = projectDescription, _
    .StartDate = startdate, _
    .EndDate = enddate }

【讨论】:

  • 谢谢。我添加了昏迷,它消除了我遇到的错误。但是我现在有“变量 startDate 在封闭块中隐藏变量”这也发生在“endDate”中。这是指代码部分'Dim startDate As String startDate = DateTime.Parse(startDate) Dim endDate As String endDate = DateTime.Parse(endDate)'
  • 该死的。代码在 cmets 中的格式似乎不正确。
  • @Gavin:是的,会的。因此,您需要为文本版本和解析版本使用不同的变量名称。遵循编译器错误消息。 (您为此使用文本框而不是某种日期选择器控件的任何原因?)
  • Jon - 我更改了变量名称、编译和测试,并将值传递到数据库中。非常感谢您的帮助。非常感谢。祝你有美好的一天
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-13
  • 2021-10-02
  • 1970-01-01
  • 2023-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多