【问题标题】:VB .NET SQL Time field record update through TextBoxVB .NET SQL 时间字段记录通过文本框更新
【发布时间】:2016-03-11 10:56:01
【问题描述】:

我有一个包含四个对象的简单表单:两个 TextBoxes、一个 DataGridView 和一个 Button。通过该按钮,我从这些对象的 SQL 数据库中加载了一些数据。该表有两个字段,一个文本字段(“MyOtherTextField”)和一个时间字段(“MyTimeField”)。我为绑定编写的代码如下:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  Dim m_dt As DataTable

  Dim m_da As SqlClient.SqlDataAdapter
  Dim m_cn As SqlClient.SqlConnection
  Dim m_SelectCmd As SqlClient.SqlCommand
  Dim m_InsertCmd As SqlClient.SqlCommand
  Dim m_UpdateCmd As SqlClient.SqlCommand
  Dim m_DeleteCmd As SqlClient.SqlCommand
  Dim m_bmb As BindingManagerBase

  m_dt = New DataTable

  m_cn = New SqlClient.SqlConnection("My SQL Connection")

  m_SelectCmd = New SqlClient.SqlCommand("My Command String ", m_cn)

  m_SelectCmd.CommandTimeout = 500
  m_da = New SqlClient.SqlDataAdapter(m_SelectCmd)

  m_da.Fill(m_dt)

  If m_dt.Rows.Count = 0 Then

    TextBox3.DataBindings.Clear()
    TextBox1.DataBindings.Clear()

    TextBox3.DataBindings.Add("text", m_dt, "MyTimeField")
    TextBox1.DataBindings.Add("text", m_dt, "MyOtherTextField")

    TextBox3.Text = " "
    TextBox1.Text = " "

  Else
    TextBox3.DataBindings.Clear()
    TextBox1.DataBindings.Clear()

    TextBox3.DataBindings.Add("text", m_dt, "MyTimeField")
    TextBox1.DataBindings.Add("text", m_dt, "MyOtherTextField")
  End If

  m_bmb = BindingContext(m_dt)

  Dim CmdBuilder As SqlClient.SqlCommandBuilder = New SqlClient.SqlCommandBuilder(m_da)

  m_InsertCmd = CmdBuilder.GetInsertCommand
  m_UpdateCmd = CmdBuilder.GetUpdateCommand
  m_DeleteCmd = CmdBuilder.GetDeleteCommand

  m_da.InsertCommand = m_InsertCmd
  m_da.UpdateCommand = m_UpdateCmd
  m_da.DeleteCommand = m_DeleteCmd

  ' DataGridView column setup
  MyDataGridView.DataSource = Nothing
  With MyDataGridView
    .AutoGenerateColumns = False

    .ColumnCount = 2

    .Columns(0).DataPropertyName = "MyOtherTextField"
    .Columns(0).HeaderText = "Other Text Field Header Text"
    .Columns(0).Width = 165

    .Columns(1).DataPropertyName = "MyTimeField"
    .Columns(1).HeaderText = "Time Field Header Text"
    .Columns(1).Width = 90
  End With

  MyDataGridView.DataSource = m_dt

  m_cn.Close()
End Sub

数据加载工作,编辑数据工作在 DataGridView 和 TextBox1(与 SQL 表的文本字段关联的那个),但不是在链接到时间字段的 TextBox 中。因此,如果我通过 TextBox1 编辑字段 MyOtherTextField,它会正确更新该记录,但通过 TextBox3 的 MyTimeField 不会发生同样的事情。我做错了什么?

谢谢。

【问题讨论】:

  • “myTimeField”的列类型是什么?

标签: sql-server vb.net datagridview textbox


【解决方案1】:

您应该使用蒙版编辑的文本框作为时间字段,以便您可以根据需要设置格式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-16
    • 2018-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-22
    • 1970-01-01
    • 2017-08-29
    相关资源
    最近更新 更多