[英]Cycle Through Sql Columns
我正在C#中使用gridview,我想知道是否存在使用一个数据源而不是三个数据源的有效方法。 现在,我有一个if语句,它根据下拉列表ddlType中的值选择数据源。
if (ddlType.Text == "Confirmation")
gvMailMergeExport.DataSourceID = "SqlDSConfirmation";
else if (ddlType.Text == "Cancellation")
gvMailMergeExport.DataSourceID = "SqlDSCancellation";
else
gvMailMergeExport.DataSourceID = "SqlDSPreArrival";
因为每个数据库都需要查看同一表中的不同列来决定显示哪些数据。 使用的三列是ConfirmationEmail,CancellationEmail和PreArrivalEmail。 这三列中的每一列都是一个位值,我只显示正确的列的值为“ 0”的行。 那么问题来了:是否有像@ColumnName = 0这样的东西可以工作呢? 谢谢。
我从来没有使用过SQLDataSources,但是如果您想走更多的自定义路线,则可以根据用户选择使用自定义where
子句来构建查询(或使用LINQ
to SQL
或LINQ
to Entity Framework
)。
您更熟悉哪种技术? LINQ
会更好,但是我也可以在ADO.NET
给出答案( SqlConnection, SqlCommand
等)。
因此,LINQ将相对简单。 在设置LINQ to Entities(EDMX)或LINQ to SQL(DBML)之后(我会做EDMX,因为MSFT的正向维护不再支持L2S)。 使用现有的数据库,拖放非常简单。
代码如下所示:
using(var context = new LinqDbContext())
{
var results = context.Tablename;
if(limitByConfEmail)
{
results = results.Where(data => data.ConfirmationEmail == true);
}
// do your elses here
gridview.DataSource = results;
gridview.DataBind();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.