Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Новый топик    Ответить
 как с ней быть? (ConnectionString)  [new]
koJIo6ok
Member

Откуда: РБ
Сообщений: 950
поделитесь опытом, ну и кусочком кода...
на каждой форме для выборки/обновлении данных (БД на sql2005)
везде по не знанию и неумению пишу :
Private Sub ToolStripButton_zagr_d_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton_zagr_d.Click
        Dim bldr = New SqlClient.SqlConnectionStringBuilder()
        bldr.DataSource = "ServerName"
        bldr.InitialCatalog = "назв_БД"
        bldr.UserID = "имя_польз"
        bldr.Password = "пароль"
        bldr.IntegratedSecurity = False
        Using cn = New SqlClient.SqlConnection(bldr.ConnectionString)
            Try
                cn.Open() 
и так для везде, у меня есть форма имя_польз выбирается, пароль - вводится
ServerName и назв_БД не меняются
как бы это сделать так чтобы на оснавание введенных данных создать строку подключения, а потом везде далее её использовать?
я догадываюсь что надо создать класс потом его использовать, но я не умею...
поделитесь примером и как им пользоваться, плз
31 июл 08, 12:21    [6009487]     Ответить | Цитировать Сообщить модератору
 Re: как с ней быть? (ConnectionString)  [new]
AlexeiK
Member

Откуда:
Сообщений: 2859
тебе надо C# или VB.net?
31 июл 08, 15:10    [6011036]     Ответить | Цитировать Сообщить модератору
 Re: как с ней быть? (ConnectionString)  [new]
AlexeiK
Member

Откуда:
Сообщений: 2859
короче сделай модуль.
в нем объяви Public переменную.
она будет по своей сути видна отовсюду.
заполнять,ее можешь из процедуры Main.
31 июл 08, 15:11    [6011047]     Ответить | Цитировать Сообщить модератору
 Re: как с ней быть? (ConnectionString)  [new]
koJIo6ok
Member

Откуда: РБ
Сообщений: 950
так ?
Module Module1
    Public cn As SqlClient.SqlConnection

    Public Sub createConnectionString(ByVal user_name As String, ByVal password As String)
        Dim bldr = New SqlClient.SqlConnectionStringBuilder()
        bldr.DataSource = "......"
        bldr.InitialCatalog = "....."
        bldr.UserID = user_name
        bldr.Password = password
        bldr.IntegratedSecurity = False
        cn = New SqlClient.SqlConnection(bldr.ConnectionString)
    End Sub
End Module
на login_form выберется user_name и введется password, на событие clik кнопки "ОК"
сделаю вызов createConnectionString(user_name, password)
потом я смогу на везде где надо использовать эту строку подключения?
31 июл 08, 15:26    [6011173]     Ответить | Цитировать Сообщить модератору
 Re: как с ней быть? (ConnectionString)  [new]
AlexeiK
Member

Откуда:
Сообщений: 2859
слушай,я вот не знаю,подсказать тебе или нет, где ошибкА?
ведь ты не знаешь, теорию по областям видимости.
и еще не бойся,прыгать от теории к практике,запусти и проверь свой код.
31 июл 08, 16:10    [6011440]     Ответить | Цитировать Сообщить модератору
 Re: как с ней быть? (ConnectionString)  [new]
koJIo6ok
Member

Откуда: РБ
Сообщений: 950
AlexeiK
слушай,я вот не знаю,подсказать тебе или нет, где ошибкА?
ведь ты не знаешь, теорию по областям видимости.
и еще не бойся,прыгать от теории к практике,запусти и проверь свой код.


запустил
Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
        Dim us_name, pas As String
        us_name = Me.cbox_user_name.Text
        pas = Me.txtbox_password.Text
        Call createConnectionString(us_name, pas)
        frm_add_zak.Show()
        me.Close()
    End Sub
открывается форма
на ней на кнопке код
Private Sub ToolStripButton_zagr_d_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton_zagr_d.Click
        Using cn
            Try
                cn.Open()
                'select command
                Me.DataSet_zak.Tables(0).Clear()
                SqlDataAdapter_zak.SelectCommand = cn.CreateCommand()
                SqlDataAdapter_zak.SelectCommand.CommandText = "general.usp_get_zak"
                SqlDataAdapter_zak.SelectCommand.CommandType = CommandType.StoredProcedure
                SqlDataAdapter_zak.Fill(DataSet_zak.Tables(0))
                cn.Close()
                BindingSource_zak.DataSource = Me.DataSet_zak.Tables(0)
                DataGridView_zak.Columns.Item(0).Visible = False
                DataGridView_zak.Columns.Item(2).Width = 100
                SaveToolStripButton.Enabled = True
            Catch ex As Exception
                MessageBox.Show(ex.Message, "Ошибка загрузки данных", MessageBoxButtons.OK, MessageBoxIcon.Error)
                Return
            End Try
        End Using
    End Sub
жму кнопку все нормально - данные выбираются с базы datagridview заполняется, но если жму второй раз - ошибка - свойства строки подключения не определены (перевод свободный :))
31 июл 08, 16:19    [6011511]     Ответить | Цитировать Сообщить модератору
 Re: как с ней быть? (ConnectionString)  [new]
koJIo6ok
Member

Откуда: РБ
Сообщений: 950
да, лучше конечно подскажи, а я читну, книг у меня много.
31 июл 08, 16:28    [6011611]     Ответить | Цитировать Сообщить модератору
 Re: как с ней быть? (ConnectionString)  [new]
koJIo6ok
Member

Откуда: РБ
Сообщений: 950
убрал using все работает как надо! наверное :)
что Вы говорили про область видимости?
31 июл 08, 16:59    [6011862]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: как с ней быть? (ConnectionString)  [new]
koJIo6ok
Member

Откуда: РБ
Сообщений: 950
internal static SqlConnectionStringBuilder create_bldr()
        {
            SqlConnectionStringBuilder bldr = new SqlConnectionStringBuilder()
            {
                DataSource = "221.1.2.254",
                InitialCatalog = "trust",
                UserID = _userFioSokr,
                Password = _userPass,
                IntegratedSecurity = false
            };

            return bldr;
        }
с пом ее создавал SqlConnection, для сети в куторую входит севрвер все норм было,
подключил еще сети (VPN) для них сервер стал 192.168.100.2 переписал DataSource = "MyServerName" работает,
но иногда слетает сопоставление имен в hosts и networks и по имени обратиться к серверу нельзя да и неудобно и непрактично так,
может можно прописать что вроде
DataSource = "221.1.2.254",
AlternativDataSource = "192.168.100.2"
?
25 ноя 10, 14:29    [9838929]     Ответить | Цитировать Сообщить модератору
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Ответить