SQL Server 데이터베이스에서 데이터를 가져 오려고합니다.엔터티 프레임 워크에서 linq를 사용하는 동안 형식 변환 오류가 발생합니다.
데이터베이스에 Standard
이라는 테이블이 있습니다. 그것에는 세 개의 열 StandardID
, StandardName
및 Description
이 있습니다.
Using db As New SchoolDBEntities
ComboSelectStandardToEdit.DataSource = db.Standards.ToList()
ComboSelectStandardToEdit.ValueMember = "StandardID"
ComboSelectStandardToEdit.DisplayMember = "StandardName"
End Using
가 지금은
txtStandardName
및
txtDescription
라는 두 텍스트 상자가 있습니다
은 내가 여기에 코드가 StandardName
의 값을 입력하는 콤보 상자가 있습니다.
콤보 박스에서 선택한 StandardName
을 기반으로이 두 텍스트 상자의 값을 채우고 싶습니다. 여기
Using db As New SchoolDBEntities
Dim standard = From s In db.Standards
Where s.StandardId = CInt(ComboSelectStandardToEdit.SelectedValue)
Select s
txtStandardName.Text = CType(standard, Standard).StandardName
End Using
하지만 불행히도 내가 가진 오류 :
유형의 개체를 캐스팅 할 수 없습니다 'System.Data.Entity.Infrastructure.DbQuery
`1[EF_WinForms_VB.Standard]' to type 'EF_WinForms_VB.Standard'.
T 런타임에이 오류가 발생합니다. 'System.Object'유형의 상수 값을 만들 수 없습니다. 이 문맥에서는, 원시 형 또는 열거 형만이 지원되고 있습니다. – Khushi
은 this가 where 절과 관련이있는 것으로 보입니다. 한 점에서는 'StandardID'를 사용하고 다른 곳에서는 객체의 속성이 아닌'StandardId '를 사용하고 있습니다. – Claies
@ user2524507 : probaby는' 'Dim standard ...'줄 앞의 질의를 'CInt' 변환합니다 :'Dim standardId = CInt (ComboSelectStandardToEdit.SelectedValue)'그리고'Where' 절 :'Where s.StandardId = standardId' – Slauma