Kontynuacja połączenie do bazy w nowej formie

Odpowiedz Nowy wątek
siudzio_
2009-04-22 18:00
siudzio_
0

Witam,
"spadło" na mnie napisanie toola do modyfikacji danych w bazie Oraclowej i tool musi być napisany w C#.
Nie programuje na co dzień w C#, więc proszę o wyrozumiałość jeżeli odpowiedź na pytanie jest banalna, ale nie mogłem jej wygooglać.
Mój problem:
Po połączeniu do bazy, pomyślnej autoryzacji usera (user DB) chciałbym otworzyć nową formatkę(formę) i "przekazać" jej już otwartą wcześniej sesję do bazy, przez co udostępnić możliwość odczytu i modyfikacji danych w bazie:
Kod mojej Pierwszej formatki wygląda następująco:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;

namespace LillaHouseWFA
{
public partial class Login : Form
{

public OracleConnection OracleConnection1 = new OracleConnection();
//nie wiem czy nie lepiej wyzej uzyc private zamiast public
public Login()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
OracleConnection1.ConnectionString = "User Id=" + textBox1.Text +
";Password=" + textBox2.Text +
";Data Source=textBox3.Text ;";
try
{
OracleConnection1.Open();
button1.Enabled = false;
MainMenu nowyFormMainMenu = new MainMenu();
nowyFormMainMenu.Show();
this.Hide();

}
catch (OracleException ex)
{
switch (ex.Number)
{
case 1:
MessageBox.Show("Error attempting to insert duplicate data.");
break;
case 12560:
MessageBox.Show("Baza danych nie jest dostępna. Skontaktuj się z administratorem.");
break;
default:
MessageBox.Show("Błąd danych. Error: " + ex.Message.ToString());
break;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
}
}
}

Nie wiem jednak jak mogę i czy mogę użyć istniejącego obiektu OracleConnection1 w nowej formatce (MainMenu)czy też mam w tej formatce zamknąc połączenie i przekazać w stringach login i hasło do nowej formatki i jeszcze raz otworzyc połączenie.
A może macie jekieś inne pomysły?
Z góry bardzo dziękuję.

Pozostało 580 znaków

szymek1111
2009-04-22 22:33
szymek1111
0

Witam

Spróbuj tak:

wywołanie drugiego okna w oknie głównym i jako parametr przekazujesz twoje połączenie
Form2 nowe = new Form2(connection);
nowe.ShowDialog();

i w drugim okniecoś takiego

SqlConnection pol = null;
public Form2(SqlConnection connection)
{
InitializeComponent();
pol = connection;
}

Testowałem na MSSQL i działa
Pozdrawiam

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0