MichaelWNewman Ответов: 2

Помогите с переданным значением между формами VS2015 community edition пожалуйста


Я только что начал использовать Visual Studio 2015 Community Edition и обнаружил, что больше не могу использовать простой код, который я использовал в Vb2010 Express.

Я пытаюсь использовать адаптированную версию простого примера «Клиенты / заказы», ​​который описан во многих учебных пособиях в Интернете. Если я использую пример, в котором таблица клиентов (в моем случае список учетных записей) отображается как детали или отдельные текстовые поля, а заказы (в моем случае банковские реквизиты) отображаются в DataGridView в той же форме, он работает отлично. Если я попытаюсь использовать один и тот же набор данных в двух формах, он не будет работать должным образом в 2015 году. Первая форма отображает данные счетов, а вторая форма должна отображать только детали для выбранного банковского счета, который я использую тот же код, который работал в VB2010 Express. Я знаю, что значение, переданное из первой формы во вторую, верное. Чтобы доказать, что я передал правильное значение, я поместил метку во вторую форму для отображения значения. Это работает правильно. Значение отслеживается с выбранной записью в форме счетов.

Моя проблема заключается в том, что datagridview во второй форме не отображает банковские реквизиты выбранного клиента, и я не могу понять, почему он ведет себя таким образом. Он отображает все счета, как если бы я выбрал неправильную таблицу счетов из набора данных, но я знаю, что у меня нет, иначе пример одной формы не работал бы.

Я думаю, что проблема заключается в строке 3 с "AccountID" во второй партии кода, но я не знаю, как исправить эту проблему. Поскольку это целое число, я даже поместил туда действительное число LoAID, но оно тоже игнорируется.

Может ли кто-нибудь дать мне правильный синтаксис для VS2015?

Что я уже пробовал:

'Passed in value is LoAID from Form2  
02.    Public Sub New(ByVal LoAID As Integer)  
03.  
04.        ' This call is required by the designer.  
05.        InitializeComponent()  
06.  
07.        ' Add any initialization after the InitializeComponent() call.  
08.  
09.        'LoAID is the Primary key value from Form2's data table  
10.        Me.AccountID = LoAID 'For test purposes display passed in value from Form2.  Label1 displays the correct value  
11.        Label1.Text = AccountID  


Private Sub Form10_Load(sender As Object, e As EventArgs) Handles MyBase.Load  
02.        'TODO: This line of code loads data into the 'AccountBankDataSet.Account' table. You can move, or remove it, as needed.  
03.        Me.AccountTableAdapter.FillByLoAID(Me.AccountBankDataSet.Account, AccountID)  
04.        'TODO: This line of code loads data into the 'AccountBankDataSet.Bank' table. You can move, or remove it, as needed.  
05.        Me.BankTableAdapter.Fill(Me.AccountBankDataSet.Bank)  
06.  
07.        Me.MdiParent = MDIParent1  
08.  
09.        Me.Location = New Point(50, 50)  
10.  
11.    End Sub  

2 Ответов

Рейтинг:
2

MichaelWNewman

Я решил эту проблему. Смотрите по этой ссылке Майкрософт :

Передача данных между формами[^]


Рейтинг:
0

OriginalGriff

Попробовать это:

Label1.Text = AccountID.ToString()


MichaelWNewman

Спасибо за быстрый ответ, но в вашей спешке это выглядит так, как будто вы не прочитали вопрос полностью. Текст метки в основном не имеет никакого отношения к работе программы. Это было только для того, чтобы показать мне, что правильное значение было передано между двумя формами.

Я передаю целое число из первой формы во вторую ,которая является " LoAID и первичным ключом в таблице счетов в первой форме. Затем ему присваивается имя переменной с целочисленным значением "Me.AccountID = LoAID" во второй форме.

Затем AccountID используется для выбора набора данных для этого LoAID в виде целочисленного значения в таблице банковских данных. Они были установлены с помощью внешнего ключа в таблице базы данных Банка. В этом случае внешний ключ не извлекает только необходимые данные, и я не знаю почему.

MichaelWNewman

Я решил эту проблему. Подробности смотрите по этой ссылке:
https://msdn.microsoft.com/en-us/library/ms171925.aspx?cs-save-lang=1& cs-lang=vb#code-snippet-2