Я хочу добавить нового пользователя в свою базу данных с помощью следующего фрагмента. «Кунде» - это объект, который я создаю. «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;
/
Если вам нужна дополнительная информация, спрашивайте :) Заранее спасибо.