Zrobiłem to trochę inaczej, wrzuciłem kod do konstruktora i faktycznie przy teście zadziałało. Niestety mam teraz inny problem.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;
using WindowsFormsApplication1;
namespace WindowsFormsApplication1
{
public partial class Form3 : Form
{
OracleConnection conn = new OracleConnection();
public Form3()
{
InitializeComponent();
Form1 m = new Form1();
String connectionString = "user id=" + m.TextBox1Text + ";password="
+ m.masked1 + ";data source=(DESCRIPTION=(ADDRESS=" +
"(PROTOCOL=tcp)(HOST=" + m.TextBox3TEXT +
")" +
"(PORT=" + m.TextBox4TEXT + "))(CONNECT_DATA=(SERVICE_NAME=" +
m.TextBox5TEXT + ")))";
using (OracleConnection conn = new OracleConnection(connectionString))
{
conn.Open();
}
}
private void button1_Click(object sender, EventArgs e)
{
OracleCommand cmd = conn.CreateCommand();
cmd.CommandText = "INSERT INTO dept VALUES ('66666', 'trololo61')";
cmd.ExecuteNonQuery();
}
}
}
conn.Open(); z mojego konstruktora kończy się w momencie zakończenia wykonywania jego kodu. Nie jest to zmienna, którą mogę zadeklarować przed klasą by była globalna, więc przy okazji button1_Click zanim wpiszę wszystko co jest w środku, musiałbym jeszcze raz otworzyć połączenie, a bardzo chciałbym to jakoś pominąć. Da się to jakoś zrobić?