簡體   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