2016-07-02 2 views
-1

У меня есть два формы, которая использует ту же самую строку соединения, такие как,VB.NET Каков наилучший способ передать значение другой форме?

Dim connStr as String = "Server = localhost; Database = tester; Uid = root; Pwd = 123"

Код выше помещаются в Form1. Поэтому в моем Form2 я снова использую ту же строку соединения. Вместо того, чтобы копировать и вставлять его снова в каждую следующую форму, что это лучший способ сделать это?

Я попытался использовать этот код, Public Property connString as String = "bla..bla" для Form2. Затем в Form1 я позволяю ему удерживать ту же строку, что и это. Form2.connString = connStr

Правильно ли это передать значение между формами? Или есть правильный/лучший способ сделать это?

+2

ConnectionString следует хранить в app.config (web.config) через настройки свойств вашего проекта. Затем вы можете прочитать это значение с помощью _ConfigurationManager.ConnectionStrings [keyOfYourString] .ConnectionString_ Не пытайтесь скомпоновать их в своей программе, и, конечно же, они не проходят между формами. – Steve

+0

Наиболее распространенным способом является абстрагирование таких вещей, как строки подключения от пользователя интерфейс. То есть, у вас должен быть отдельный класс (или даже классы), который обрабатывает соединение с базой данных. Из этого класса вы можете создавать объекты, которые знают строку соединения. Но даже в этом случае вы не будете жестко привязывать соединение - вы должны получить его из конфигурации (например, app.config или web.config). – germi

+0

Спасибо @Steve! Учитесь на своих ошибках. – Student

ответ

0

Лучшим способом передать или вызвать переменный из различных форм для создания модуля.

Open Visual Studio, нажмите кнопку Проект в строке меню> Добавить модуль ...> Выбрать модуль> OK

Оттуда вы можете объявлять глобальные переменные.

Module Module1 
    Public connStr as String = "Server = localhost; Database = tester; Uid = root; Pwd = 123"  
End Module 

Теперь переменную «connStr» можно вызывать из разных форм.

Из формы Form1 и Form2 вы можете просто вызвать эту глобальную переменную, как если бы это были ваши локальные переменные.

+0

Спасибо. Итак, как вы называете это тогда из других форм? – Student

+0

Вы можете просто называть его так, как вы называете ваши локальные переменные. –

+0

Спасибо. Принял ваш ответ. Пожалуйста, обновите его, чтобы показать полное руководство о том, как его называть. – Student

0

создать конструктор и передать аргументы как значение, которое вы хотите передать между формой, как показано ниже

Sub New(ByVal s As String, i As Integer) 
Смежные вопросы