ASP.NET Tips1---合并多個欄位值

來源:互聯網
上載者:User
asp.net 一般支援資料繫結的web控制項,例如DorpDownList控制項、CheckBoxList控制項等,都包含五個屬性:DataSource、DataMember,DataTextField、DataValueField和DataTextFormatString。DataSource用於擷取資料來源,亦即擷取包含資料的集合;其他四個屬性用於擷取資料來源中的一個欄位值。然而,通常情況下,你想將這些資料來源中的多個欄位值綁定在一起賦值給其中的一個屬性,這是不能直接實現的。下面我們將介紹兩種方法用於實現這一功能。

以上限制在於不能將多個欄位值綁定在一起,賦值給這四個屬性中的其中一個;但是SQL語句卻完全沒有這種限制。所以,我們的第一個方法是使用SQL語句將源表中的兩個或多個欄位值綁定在一起,使用AS子句傳遞給另一個欄位,這樣就實現了一個欄位包含多個欄位值。由於現在一個欄位就包含了多個欄位的值,我們將其賦值給web控制項的那四個屬性時就不用有更多的考慮了。我們可以參考下面的語句看看這種方法的妙處:

strCmd="SELECT employeeid,lastName +','+firstName AS 'EmployeeName' FROM Employees";


這種方法十分簡潔,也是最直接的一種方法,不過存在著效率不足的問題,而且有可能會產生重複資料。下面我們介紹另一種方法,我們可以將源表填充到一個資料集DataSet中,然後將資料集的資料放置到一個資料表DataTable中,然後給該表建立一個新列,該列由源表中的兩個或多個欄位構成,這樣我們也實現了多個欄位值的綁定。下面的語句可以說明這種方法的實現:

dt.Columns.Add(“EmployeeName”,typeod(String),”lastName+’,’+firstName”);


後一種方法的缺點在於建立新列的開銷。不過這種方法條理比較清楚,而且不會產生重複資料的可能,建議使用這種方法。

為了說明這兩種方法,下面的代碼將兩種方法放在一起實現了:

// 在此處放置使用者代碼以初始化頁面

string strConn,strCmd;

strConn="DATABASE=NorthWind;SERVER=localhost;UID=sa;PWD=99133009;";

//如果既需要將firstName和LastName綁定,又需要單獨使用他們,下面的語句就會產生重複資料。

strCmd="SELECT employeeid,firstName,lastName,lastName +','+firstName AS 'EmployeeName' FROM Employees";

SqlDataAdapter dsda=new SqlDataAdapter(strCmd,strConn);

DataSet ds=new DataSet();

dsda.Fill(ds,"EmployeeList");

DataTable dt=ds.Tables["EmployeeList"];



//第一種方法

//DDL1是一個DropDownList控制項

DDL1.DataSource=dt.DefaultView;

DDL1.DataTextField="EmployeeName";

DDL1.DataValueField="employeeid";

DDL1.DataBind();

/*第二種方法

dt.Columns.Add("EmployeeName",typeod(String),"lastName+','+firstName");

DDL1.DataTextField="EmployeeName";

DDL1.DataBind();

* /





聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.