我有一个2层架构,这意味着我正在使用Business Objects和DAL类。我的问题是:如何将值传递给DAL类中某个函数的参数。
我正在使用gridview(我显示基本信息)和formview(当你点击gridview中的选择按钮时,会显示一条记录的所有信息)。
这是我的DAL类中的函数:
[DataObjectMethodAttribute(DataObjectMethodType.Select, true)]
public static Inschrijving GetInschrijvingById(int id)
{
Inschrijving inschrijving = new Inschrijving();
SqlConnection conn = new SqlConnection(GetConnectionString());
string sql =
"SELECT * FROM tblInschrijvingen WHERE ID = @id";
SqlCommand cmd = new SqlCommand(sql, conn);
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
inschrijving.Id = Convert.ToInt32(dr["ID"]);
inschrijving.Naam = dr["NAAM"].ToString();
inschrijving.Geslacht = dr["GESLACHT"].ToString();
inschrijving.Straat = dr["STRAAT"].ToString();
inschrijving.Postcode = Convert.ToInt32(dr["PC"]);
inschrijving.Gemeente = dr["PLAATS"].ToString();
inschrijving.Geboortedatum = (DateTime) dr["GBDATUM"];
inschrijving.Tshirt = dr["TSHIRT"].ToString();
inschrijving.Afstand = DAL.AfstandDAL.getAfstandByID(Convert.ToInt32(dr["ID_AFSTAND"]));
inschrijving.Email = dr["EMAIL"].ToString();
inschrijving.InschrijvingsDatum = (DateTime)dr["INDATUM"];
inschrijving.Betaald = Convert.ToBoolean(dr["BETAALD"]);
}
return inschrijving;
}
我有这个对象数据源:
<asp:ObjectDataSource ID="dtsrcDetails" runat="server" SelectMethod="getInschrijvingById" OldValuesParameterFormatString="original_{0}" TypeName="DAL.InschrijvingDAL" DataObjectTypeName="BO.Inschrijving"></asp:ObjectDataSource>
我知道我应该添加一些SelectParameter,我只是不知道如何。 有谁愿意帮助我吗? :)
提前致谢。 H.S。
答案 0 :(得分:1)
您可以使用ObjectDataSource.SelectParameters属性。
这篇msdn文章介绍了如何使用参数 - Using Parameters with the ObjectDataSource Control
答案 1 :(得分:1)
您可以使用以下方法添加要传递给select方法的参数
<asp:ObjectDataSource ID="dtsrcDetails" runat="server" SelectMethod="getInschrijvingById" OldValuesParameterFormatString="original_{0}" TypeName="DAL.InschrijvingDAL" DataObjectTypeName="BO.Inschrijving"><SelectParameters>
<asp:Parameter Name="id" />
</SelectParameters>
</asp:ObjectDataSource>