Представление базы данных: Таблица 3
Account Number |Name |Address |Movies Rented |Date
00001 |John |dbfdgjfkhgj |fhdfhjfgjhk |11/17/10
00002 |Michael |gefjkyuthjs |dgshythety |10/12/10
00003 |Maverick |fgfshbsfgjk |asdjbinn |12/01/10
00003 |Maverick |gdsffgbhgfhg |dfdfhfh |12/02/10
00004 |Joel |dsgdsffh |gdsfhfdh |11/14/10
00004 |Joel |hdfgjgfhgfj |gsdhfdhjty |11/14/10
00003 |Maverick |ertgrjrjtypo |dsgdgrhtyth |12/03/10
Я столкнулся с чем-то вроде логической ошибки, которую я едва мог устранить, так как я новичок в этой технологии. Я использую Visual Basic 2008 Express Edition со встроенным linq-to-sql
технология. Я смог получить, добавить, отредактировать и удалить такую запись, используя метод linq-to-sql, но я не смог получить что-то вроде операции с реляционной базой данных.
Вот моя проблема. Как вы можете видеть таблицу выше, которая представляет записи в моей базе данных. Вы можете заметить, что там были дублированы номера счетов, которые я
используется в качестве первичного ключа или идентификатора. Я хочу, чтобы при запросе такого номера счета отображались все записи с одинаковыми номерами. Скажем, например, если я запрашиваю номер счета 00003. Он должен только подтянуть и отобразить три записи с именем Maverick и их соответствующим адресом, арендованным фильмом и датой.
То, что происходит с моей стороны, происходит, когда я запрашиваю такой номер счета, который дублируется в базе данных, я столкнулся с двумя вещами: либо он будет отображать все записи в базе данных с разными номерами учетных записей, либо он выдаст мне ошибку сообщение, если я изменю свой код с оператора For Each memrec In db.Table3s
на For Each memrec In retrn
.
То, что я пытался сделать здесь, это то, что если вы вводите номер учетной записи в поле поиска, он должен отображать только записи в поле со списком, связанные с вводимым номером учетной записи. Например, если вы введете 00003 в поле поиска, в поле со списком должны отображаться только три фильма, взятые напрокат Maverick.
Вот коды, которые я использовал:
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Dim db As New memrecDataContext()
Dim ret As String
ret = InputBox("Enter Account#", "Search")
Dim retrn = _
From memrec In db.Table3s _
Where memrec.Account_ = ret _
Select memrec.Movies_Rented()
For Each memrec In db.Table3s
If memrec.Account_ = ret Then
Form4.ComboBox5.Text = memrec.Account_
Form4.ComboBox4.Text = memrec.Name
Form4.DateTimePicker1.Value = memrec.Date
Form4.ComboBox2.Text = memrec.Movies_Rented
Form4.ComboBox1.Text = memrec.Address
Form4.Show()
End If
Next
End Sub
этот код выше не будет фильтровать записи, связанные с номером учетной записи, вводимым в поле поиска, поскольку он по-прежнему будет извлекать все записи в базе данных, и если я также буду использовать этот блок кодов ниже:
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Dim db As New memrecDataContext()
Dim ret As String
ret = InputBox("Enter Account#", "Search")
Dim retrn = _
From memrec In db.Table3s _
Where memrec.Account_ = ret _
Select memrec.Movies_Rented()
For Each memrec In retrn
If memrec.Account_ = ret Then
Form4.ComboBox5.Text = memrec.Account_
Form4.ComboBox4.Text = memrec.Name
Form4.DateTimePicker1.Value = memrec.Date
Form4.ComboBox2.Text = memrec.Movies_Rented
Form4.ComboBox1.Text = memrec.Address
Form4.Show()
End If
Next
End Sub
это все равно выдаст мне ошибку, сказав следующее
'Account_' is not a member of 'String'.
'Name' is not a member of 'String'.
'Address' is not a member of 'String'.
'Movies_Rented' is not a member of 'String'.
'Date' is not a member of 'String'.
Спасибо за ваш ответ. Я уже пробовал этот набор кодов раньше, но он работает так же. Я много раз пытался изменить свои коды, прежде чем я оставил свой комментарий на этом форуме, думая, что я могу решить его самостоятельно, но я не смог. Этот код по-прежнему не будет фильтровать записи в базе данных. Я хотел бы убедиться, что приведенная выше таблица является только представлением, но реальный столбец в таблице в моей базе данных - это «Номер счета», а не Номер счета, и Visual Basic обнаружит код как «Счет_». Могу ли я узнать, почему столбец Movies_Rented в моей таблице не является элементом строки? Почему код, который вы дали, будет по-прежнему отображать все записи в поле со списком?