C# Windows Form dodanie danych

0

Mój kod wygląda mnie tak jak poniżej jak odpalę to wyskakuje mi taki błąd:

An unhandled exception of type 'Oracle.DataAccess.Client.OracleException' occurred in Oracle.DataAccess.dll

Additional information: External component has thrown an exception.

wyskakuje przy "comm.ExecuteNonQuery();"

Dziękuje za wszelką pomoc męczę się z tym od kilku dni i nie wiem za bardzo o co chodzi zaznaczam, że jestem raczej noobem i mogę robić jakiś bardzo prosty błąd proszę o wyrozumiałość. Wydaje mi się ze to jakiś błąd z połączeniem z rzeczywistą bazą oracle ale nie jestem pewien jaki. Przy dodawaniu new data source normalnie wczytało moje tabele.

private void button2_Click(object sender, EventArgs e)
        {
            string oracledb =
             "Data Source=(DESCRIPTION =(ADDRESS_LIST ="
 + "(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)))"
 + "(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = XE)));"
 + "User Id=baza1;Password=qwe123;";
            
            OracleConnection conn = new OracleConnection(oracledb);
            conn.Open();

            OracleCommand comm = new OracleCommand();
            comm.Connection = conn;
            comm.CommandText =
                "INSERT INTO KLIENT (IDENTYFIKATOR,IMIE,NAZWISKO,ADRES,KOD_POCZTOWY,POCZTA,TELEFON,HASLO) VALUES('" + tb1.Text + "','" + tb2.Text + "','" + tb3.Text + "','" + tb4.Text + "','" + tb5.Text + "','" + tb7.Text + "','" + tb8.Text + "')";
            comm.CommandType = CommandType.Text;
            comm.ExecuteNonQuery();
            conn.Close();
        }

Próbowałem również tak :

OracleCommand comm = new OracleCommand("INSERT INTO KLIENT values(@IDENTYFIKATOR,@IMIE,@NAZWISKO,@ADRES,@KOD_POCZTOWY,@POCZTA,@TELEFON,@HASLO)",conn);
            comm.Parameters.Add("@IDENTYFIKATOR",OracleDbType.Int16, 5).Value = tb1.Text;
            comm.Parameters.Add("@IMIE", OracleDbType.Varchar2, 40).Value = tb2.Text;
            comm.Parameters.Add("@NAZWISKO", OracleDbType.Varchar2, 40).Value = tb3.Text;
            comm.Parameters.Add("@ADRES", OracleDbType.Varchar2, 40).Value = tb4.Text;
            comm.Parameters.Add("@KOD_POCZTOWY", OracleDbType.Varchar2, 40).Value = tb5.Text;
            comm.Parameters.Add("@POCZTA", OracleDbType.Varchar2, 40).Value = tb6.Text;
            comm.Parameters.Add("@TELEFON", OracleDbType.Int16, 9).Value = tb7.Text;
            comm.Parameters.Add("@HASLO", OracleDbType.Varchar2, 10).Value = tb8.Text;
            comm.ExecuteNonQuery();
            conn.Close();

Wątek powinien być chyba w innym dziale ale chyba samemu nie mogę przenieść :D

0

Nie aktualne dzięki pomocy kolegi znalazłem rozwiązanie

string connectionString = "Data Source=(DESCRIPTION =(ADDRESS_LIST =" + "(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)))" + "(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = XE)));" + "User Id=baza1;Password=qwe123;";
string queryString = "INSERT INTO KLIENT (IDENTYFIKATOR,IMIE,NAZWISKO,ADRES,KOD_POCZTOWY,POCZTA,TELEFON,HASLO) VALUES('" + tb1.Text + "','" + tb2.Text + "','" + tb3.Text + "','" + tb4.Text + "','" + tb5.Text + "','" + tb6.Text + "','" + tb7.Text + "','" + tb8.Text + "')";
using (OracleConnection connection = new OracleConnection(connectionString))
{
OracleCommand command = new OracleCommand(queryString);
command.Connection = connection;
try
{
connection.Open();
command.ExecuteNonQuery();
label1.Text = "Dziękuje za Rejestracje";
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
label1.Text = ex.Message;
}
}

Może komuś się przyda na przyszłość

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