Добавление объекта в таблицу PSQL из моей модели MainViewModel, написанной на c# - PullRequest
0 голосов
/ 16 июня 2020

Я хочу добавить нового пользователя в свою базу данных с помощью следующего фрагмента. «Кунде» - это объект, который я создаю. «TempKunde» - это его имя. Он должен вызывать процедуру с параметрами, которые я добавил, но не делает этого.

Код использует Oracle .ManagedDataAccess.Client

Kunde TempKunde = new Kunde(Vorname, Nachname, Strasse, Hausnr, PLZ, Stadt, Geburtstag, WantsVK);

                    OracleCommand addCustomerCmd = new OracleCommand();
                    addCustomerCmd.CommandText = "p_create_kunde7";
                    addCustomerCmd.CommandType = CommandType.StoredProcedure;
                    addCustomerCmd.Parameters.Add("vorname", OracleDbType.Varchar2).Value = TempKunde.Vorname;
                    addCustomerCmd.Parameters.Add("nachname", OracleDbType.Varchar2).Value = TempKunde.Nachname;
                    addCustomerCmd.Parameters.Add("strasse", OracleDbType.Varchar2).Value = TempKunde.Straße;
                    addCustomerCmd.Parameters.Add("hausnummer", OracleDbType.Int32).Value = Convert.ToInt32(TempKunde.HausNr);
                    addCustomerCmd.Parameters.Add("postleitzahl", OracleDbType.Int32).Value = Convert.ToInt32(TempKunde.PLZ);
                    addCustomerCmd.Parameters.Add("stadt", OracleDbType.Varchar2).Value = TempKunde.Ort;
                    addCustomerCmd.Parameters.Add("erstelldatum", OracleDbType.Date).Value = TempKunde.Erstelldatum;
                    addCustomerCmd.Parameters.Add("geburtstag", OracleDbType.Date).Value = TempKunde.Geburtsdatum;
                    //addCustomerCmd.Parameters.Add("kundenid", OracleDbType.Int32).Direction = ParameterDirection.Output;

                    addCustomerCmd.ExecuteNonQuery();

Обратите внимание, что вывод закомментирован, потому что он не работает. Мы пытались сделать это напрямую в нашей базе данных, но у нас не получалось, пока в нашем списке параметров было «kunden_id OUT INT». Если кто-нибудь знает, как мы можем заставить это работать, это была бы другая проблема (и я бы вам большое спасибо), но наша основная проблема в том, что мы не можем наладить общение.

процедура:

CREATE OR REPLACE
PROCEDURE p_create_kunde7 (vorname IN VARCHAR, nachname IN VARCHAR, strasse IN VARCHAR, hausnummer IN INT,
postleitzahl IN INT, stadt IN VARCHAR, erstelldatum IN DATE, geburtstag IN DATE)
AS       
    id INT;
BEGIN
    SELECT max(kundenid) +1 INTO id FROM kunde;
    INSERT INTO kunde (kundenid, vorname, nachname, strasse, hausnummer, postleitzahl, stadt, geburtstag, erstelldatum)
    VALUES (id, vorname, nachname, strasse, hausnummer, postleitzahl, stadt, geburtstag, erstelldatum);
END;
/

Если вам нужна дополнительная информация, спрашивайте :) Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...