在C# .net的代码后端中访问我的SqlDataSource中的数据

3
我有一个联系人页面,其中有一个人员数据列表,如果您点击其中一个人,则会得到一个联系人表单,我希望将其发送给该特定人员。
我使用sqldatasource dscontactemail获取有关该人员的信息以放置在联系表单中,但我如何从代码后台中获取dscontactemail中的信息,以便在准备发送邮件时使用?
我在页面上放了一个formview来显示该人的图片,并且可以通过<%#Eval("email")来获取dscontactemail中所需的任何内容,但我如何从代码后台获取呢?
我尝试了一个隐藏字段,但没有成功。
是否有其他方法可以从代码后台访问页面上的SqlDataSource?

你的意思是数据源,比如重复器/数据网格吗? - Jack Marchetti
@Spencer 是完全正确的。 戒掉使用 SQLDataSource 等... 不要将工具箱用于除 UI 项目外的任何内容 :) - Jack Marchetti
2个回答

2

首先,你应该在某个时刻从SqlDataSource转向SqlClient命名空间中提供的类,记住这一点。

以下是实现的代码:

DataView dview = CType(yourSqlDataSource.Select(DataSourceSelectArguments.Empty), DataView);
string str = "";

foreach(DataRow drow dview.Table.Rows)
{
    str += drow("yourcol1").ToString() + "<br />";
}

我同意毕业部分。但不是很喜欢使用DataView。 - Jack Marchetti
但是有一个问题,CType 是在 VB 中而不是 C# 中。 - Anas Naim

0
以下的内容已经足够了:
dv = yourSqlDataSource.Select(DataSourceSelectArguments.Empty) as DataView;

并单独查询DataView。

如果智能感知无法捕捉到yourSqlDataSource,则可以通过具有数据源的控件的FindControl()进行绑定:

        SqlDataSource sdsPreStartDates = (SqlDataSource)DetailsView1.FindControl("sdsPreStartDates");
        if (sdsPreStartDates != null)
        {
            DataView dv1 = (DataView)sdsPreStartDates.Select(DataSourceSelectArguments.Empty);
..
.. etc
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接