![](/img/trans.png)
[英]Using an IN clause in Vb.net to save something to the database using SQL
[英]VB.Net - Add and save new row to database using InsertOnSubmit
字段:ID,名稱,已啟用
示例數據:1-測試護士-正確
我的問題:用戶單擊“添加護士”按鈕,並將新護士添加到列表中,並且根據表中的最后一個ID自動確定ID。 但是,盡管此相同功能在同一程序的其他部分中起作用,但這在此特定塊中不起作用。
與問題相關的代碼:
Partial Public Class Nurse
Private Sub Nurse_PropertyChanged(sender As Object, e As System.ComponentModel.PropertyChangedEventArgs) Handles Me.PropertyChanged
Using database As New MaternityDatabaseDataContext
Select Case e.PropertyName
Case "First_Name"
If Me.First_Name.Trim <> "" Then
database.ExecuteCommand("UPDATE Nurses SET First_Name = {0} WHERE TableID = {1}", Me.First_Name, Me.TableID)
End If
Case "Last_Name"
If Me.Last_Name.Trim <> "" Then
database.ExecuteCommand("UPDATE Nurses SET Last_Name = {0} WHERE TableID = {1}", Me.Last_Name, Me.TableID)
End If
Case "Display_Name"
If Me.Display_Name.Trim <> "" Then
database.ExecuteCommand("UPDATE Nurses SET Display_Name = {0} WHERE TableID = {1}", Me.Display_Name, Me.TableID)
End If
Case "Enabled"
database.ExecuteCommand("UPDATE Nurses SET Enabled = {0} WHERE TableID = {1}", Me.Enabled, Me.TableID)
Case "HomeNumber"
If Me.HomeNumber.Trim <> "" Then
database.ExecuteCommand("UPDATE Nurses SET HomeNumber = {0} WHERE TableID = {1}", Me.HomeNumber, Me.TableID)
End If
Case "CellNumber"
If Me.CellNumber.Trim <> "" Then
database.ExecuteCommand("UPDATE Nurses SET CellNumber = {0} WHERE TableID = {1}", Me.CellNumber, Me.TableID)
End If
End Select
End Using
End Sub
End Class
包含addButton的Nurse用戶控件的代碼
Imports System.Collections.ObjectModel
Public Class NursesUserControl
Private NurseList As ObservableCollection(Of Nurse)
Public Sub New()
' This call is required by the designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call.
NurseList = New ObservableCollection(Of Nurse)
NursesDataGrid.ItemsSource = NurseList
End Sub
Private Sub AddButton_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles AddButton.Click
Dim employee As New Nurse
employee.Enabled = True
NurseList.Add(employee)
'TODO: Change using statement below to use maternity brain.
Using database As New MaternityDatabaseDataContext
database.Nurses.InsertOnSubmit(employee)
database.SubmitChanges()
End Using
End Sub
Private Sub DisableButton_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles DisableButton.Click
Dim selectedRow As Nurse = TryCast(NursesDataGrid.SelectedValue, Nurse)
If selectedRow IsNot Nothing Then
selectedRow.Enabled = False
End If
End Sub
Private Sub EnableButton_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles EnableButton.Click
Dim selectedRow As Nurse = TryCast(NursesDataGrid.SelectedValue, Nurse)
If selectedRow IsNot Nothing Then
selectedRow.Enabled = True
End If
End Sub
Private Sub NursesDataGrid_CellEditEnding(sender As Object, e As System.Windows.Controls.DataGridCellEditEndingEventArgs) Handles NursesDataGrid.CellEditEnding
' Force update on datagrid cell changes instead of just row changes.
Static isManualInit As Boolean = True
If e.EditAction = DataGridEditAction.Commit And isManualInit = True Then
isManualInit = False
NursesDataGrid.CommitEdit(DataGridEditingUnit.Row, True)
isManualInit = True
End If
End Sub
Private Sub NursesUserControl_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
'TODO: Change using statement below to use maternity brain.
Using database As New MaternityDatabaseDataContext
For Each employee As Nurse In database.Nurses.OrderBy(Function(Nurse) (Nurse.Last_Name))
If employee.Enabled = True Then
NurseList.Add(employee)
End If
Next
End Using
End Sub
End Class
我的錯誤:無法在護士表的列TableID中插入空值。 為什么它不能根據Nurses表中的最后一個條目自動查找TableID? 任何幫助將不勝感激。
檢查您的表設計。 聽起來好像ID未設置為身份。
如果可以,請刪除該表並使用ID INT IDENTITY(1, 1)
重新創建它。
如果無法刪除,則必須手動獲取代碼中的下一個ID。
您可以在此處獲取有關身份的更多信息
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.