繁体   English   中英

在SQL列中循环

[英]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 SQLLINQ 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM