Пытаюсь сделать код в 3 слоя для автоматического заполнения данных.
Это мой одностраничный код.
использование этого кода заключается в автоматическом заполнении данных в txtboxpartyid.text, когда я ввел данные в поле txtboxprod_id.text.
sqlconnection con = новый sqlconnection();
sqlcommand cmd = новая команда sqlcommand();
нажмите на кнопку();
{
кон.открыть();
cmd= new sqlcommand("select * from product where prod_id='"+txtboxprod_id.text+"'",con);
класс sqldatareader СДР= ЦМД.метода executereader();
если(СДР.читать())
{
txtboxpartyid.текст=(СДР["party_id"].метод toString());
}
кон.рядом();
}
Что я уже пробовал:
я пытаюсь преобразовать этот одностраничный код в 3-слойную архитектуру, но мой код не работает, и это также дает мне ошибку на части sqldatareader. ошибка заключается в том, что ваше соединение закрыто. пожалуйста, помогите мне преобразовать этот одностраничный код в 3 слоя и заранее спасибо...
приведенный ниже код является только основной частью кода без отображения кода sqlconnection или sqldataadapter.
SQl command to create a procedure: go create procedure spsearchpartyid(@prod_id int) as begin select * from product where Prod_id=@prod_id; end
>BELayer page code: public string quantity { get; set; } public string prod_id { get; set; } public string party_id { get; set; }
DALayer page code //command for auto fill data into quantity table; public SqlDataReader autofillparty_id(BEL beobj) { try { cmd = new SqlCommand("select * from product where prod_id='" + beobj.prod_id + "'", con); cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "spsearchpartyid"; cmd.Parameters.AddWithValue("@prod_id", beobj.prod_id); con.Open(); SqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection); return sdr; } catch (Exception ex) { throw ex; } finally { con.Close(); } }
BALayer page code. //command for autofill data into table quantity.. public SqlDataReader autofillquantity(BEL beobj) { try { return daobj.autofillparty_id(beobj); } catch (Exception ex) { throw ex; } }
<pre lang="c#"><pre lang="c#">Код главной страницы.
частный недействительными обработчика button1_click(объект отправителя, EventArgs в электронной)
{
если (baobj.autofillquantity(beobj).Читать())
{
txtboxpartyidquant.Текст = (beobj.party_id.Метод toString());
}
}