Как установить параметры для SqlDataSource UpdateCommand
Для Gridview:
Я пытаюсь использовать хранимую процедуру в первый раз в SQLDataSource для UpdateCommand:
<asp:SqlDataSource ID="TECT_DataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:OracleConnectionString %>"
ProviderName="<%$ ConnectionStrings:OracleConnectionString.ProviderName %>"
SelectCommand="SELECT MPID, User_Id, Last_Name, First_Name
FROM Scripts.vw_Tect_Exam"
UpdateCommand="P_TECT_UPD_EXAM_ID" UpdateCommandType="StoredProcedure">
<UpdateParameters>
<asp:Parameter Name="MPID" Type="Int32" />
<asp:Parameter Name="User_Id" Type="String" />
</UpdateParameters>
</asp:SqlDataSource>
Мне интересно, как UpdateParameters получить их значения установлены, так как я только указываю имя?
Процедура P_TECT_UPD_EXAM_ID
ожидает два параметра в качестве входных данных: "in_MPID"
а также "in_UserId"
Мне также интересно, как сопоставить эти значения с входными параметрами для процедуры, так как имена разные?
2 ответа
Вы можете установить их примерно так:
Пример: в примере MPID - это имя параметра sql @MPID
<UpdateParameters>
<asp:ControlParameter Name="MPID" ControlID="MPID_TextBox" PropertyName="Text />
<asp:ControlParameter Name="User_Id" ControlID="User_Id_TextBox" PropertyName="Text />
</UpdateParameters>
Исправление: Просто определили имена параметров вашего процесса, так что это должно быть
<asp:ControlParameter Name="in_MPID" ...............
<asp:ControlParameter Name="in_User_Id" ...............
Надеюсь это поможет....
Я действительно не буду использовать SqlDataSource
, Будет намного проще, если вы сделаете вызов базы данных в коде (или еще лучше на уровне доступа к данным).
Если вы используете SqlDataSource
вызов хранимой процедуры будет доступен только на этой странице. Каждый раз, когда вы хотите сделать тот же звонок, вам придется скопировать и вставить SqlDataSource
или сделать UserControl
из этого.
В следующем примере Entity Framework используется для подключения к базе данных и получения записей:
public List<Record> GetAllRecordsByUserName(string credentials)
{
List<Record> recordList;
using (CustomEntities context = new CustomEntities())
{
IQueryable<Section> recordQuery = from records in context.Records
where records.UserName == credentials
select records;
recordList = recordQuery.ToList<Record>();
}
return recordList;
}