1. 程式人生 > >C# WinForm 中ComboBox資料繫結的問題

C# WinForm 中ComboBox資料繫結的問題

SqlConnection   con   =   new  SqlConnection("server=192.168.2.198;uid=sa;pwd=sa;database=northwind");  
SqlCommand   cmd   =   con.CreateCommand();  
cmd.CommandText   =   "Select   *   from   Customers   where   country='USA'";  
SqlDataAdapter   adp   =   new   SqlDataAdapter();  
adp.SelectCommand   =   cmd;  
DataSet   ds     =   new   DataSet();  
adp.Fill(ds,   "Customers");  
   
   
comboBox1.DataSource   =   ds.Tables["Customers"];  
comboBox1.DisplayMember   =   "CompanyName";  
comboBox1.ValueMember   =   "CompanyName";  
   
++++++++++++++++或者++++++++++++++++++++++  
SqlConnection   con   =   new  SqlConnection("server=192.168.2.198;uid=sa;pwd=sa;database=northwind");  
SqlCommand   cmd   =   con.CreateCommand();  
cmd.CommandText   =   "Select   *   from   Customers   where   country='USA'";  
SqlDataAdapter   adp   =   new   SqlDataAdapter();  
adp.SelectCommand   =   cmd;  
DataSet   ds     =   new   DataSet();  
adp.Fill(ds,   "Customers");  
   
   
comboBox1.DataSource   =   ds;  
comboBox1.DisplayMember   =   "Customers.CompanyName";  
comboBox1.ValueMember   =   "Customers.CompanyName";  
   
++++++++++++往DataGrid裡新增下拉列表++++++++++++  
DataGridTableStyle   dgt   =   new   DataGridTableStyle();  
dgt.MappingName   =   "test";  
   
DataGridTextBoxColumn   dgtbc   =   new   DataGridTextBoxColumn();  
dgtbc.MappingName   =   "name";  
dgtbc.HeaderText=   "name";  
ComboBox   cmbFunctionArea   =   new   ComboBox();  
cmbFunctionArea.DataSource   =   DtGeneral;  
    cmbFunctionArea.DisplayMember   =   "name";  
cmbFunctionArea.ValueMember   =   "value";  
    cmbFunctionArea.Cursor   =   Cursors.Arrow;  
    cmbFunctionArea.DropDownStyle=   ComboBoxStyle.DropDownList;  
    cmbFunctionArea.Dock   =   DockStyle.Fill;  
dgtbc.TextBox.Controls.Add(cmbFunctionArea);    
dgt.GridColumnStyles.Add(dgtbc);  
cmbFunctionArea.SelectionChangeCommitted   +=new  EventHandler(cmbFunctionArea_SelectionChangeCommitted);  
+++++++++++++修改++++++++++++++++  
private   void   cmbFunctionArea_SelectionChangeCommitted(object   sender,   EventArgs   e)  
{  
((DataTable)dataGrid1.DataSource).Rows[dataGrid1.CurrentRowIndex][0]   =  ((ComboBox)sender).Text.ToString();  
dataGrid1.SetDataBinding(DtGeneral,null);  
}
4.************************************************************************
DataBindings是一般控制元件所具有的,是繫結資料來源的某一個欄位  
combobox.DataBindings.Add("要繫結控制元件的屬性如下拉框的SelectedValue\Text",   資料來源如dataset1,   "導航路徑如Table1.ListID");  
   
但是,DataBindings只能繫結一個欄位,而繫結多個欄位時典型的如列表控制元件Combobox、ListBox控制元件,需要鍵值對,這時就需要指定DataSource(實現IList介面就行),然後指定ValueMember、DisplayMember   。  
   
所以,如果是下拉列表,你只想繫結一個欄位,用DataBindings可以,想繫結兩個欄位  
   
用combobox.DataSource   =   資料來源;  
combobox.DisplayMember   =   對應顯示欄位名;      
combobox.ValueMember       =   對應儲存欄位名;  
   
不要同時用

相關推薦

C# WinForm ComboBox資料的問題

SqlConnection   con   =   new  SqlConnection("server=192.168.2.198;uid=sa;pwd=sa;database=northwind");   SqlCommand   cmd   =   con.CreateCommand();   cmd.

C# wpf 資料4-2(15)

同一個資料來源繫結到兩個或多個控制元件上。如我們的示例中把ListBox的選中項繫結到TextBox與TextBlock。 在繫結語法中增加一個 Mode 屬性,即繫結模式。對於我們的示例,我們把TextBlock的繫結語法中的Mode屬性設為 OneWay 。把TextB

C# WinFormListView 的和讀取方法

  根據自己的應用方式和在網上搜尋的資料,整理一下ListView控制元件的應用。   ListView控制元件可以直觀的顯示資料,操作很方便簡單的特點。   一、ListView新增表頭的兩種方法:   1、直接在控制元件的任務中的編輯列中新增,Name是繫結的code值,Text是表頭的顯示值。   2

C# WPF在xaml資料

在WPF的繫結中個人分為兩種:非集合資料繫結和集合資料繫結。 非集合資料繫結:指的是包含資料為單個de控制元件的資料繫結,而不是有很多子項,例如Button,TextBox,TextBlock等等的繫結。 集合資料繫結:指的是包含很多子項的控制元件的資料繫結,例如ListV

Angular2資料

實現資料繫結首先要在input的上面新增name屬性,否則是繫結不上的。 新增完成name屬性後再在input上面新增ng-model=”繫結的變數” <input class="form-c

WPF關於資料的三種方式及注意細節

前言》 首先,簡單介紹一下,什麼是資料繫結?一種用宣告的方式將控制元件和資料繫結在一起的方式。 簡單來理解一下就是:控制元件的屬性由你繫結的資料來動態判斷的方式。 《核心前提部分》 一個繫結(Binding)關係由四個元件構成:     1

struts2Action資料幾種方法

struts2中的Action接收表單傳遞過來的引數有3種方法: 1>  在Action類中定義表單屬性 如,登陸表單login.jsp:  <form action="login" method="post" name="form">  Us

SilverLightdatagrid資料的簡單使用

今天閒來無事,研究下SilverLight中資料控制元件的使用,由於剛接觸SilverLight,好多東西還不懂,需要一步一步的學習,給大家展示下DATAGRID的簡單用法 效果圖 前臺XAML程式碼 繫結列中的CanUserSort表示點選該列的標頭是否可以排序 Can

C# Winform datagridview控制元件資料來源後列順序混亂

現象描述:                   datagridview控制元件,預設狀態列順序正常。                   單擊查詢按鈕,繫結資料來源後,列順序出現變化。                  (如,正常應該是12345,查詢繫結資料後變為123

vue的思雙向資料的原理

我們在面試中經常會被問道什麼是mvc 什麼是 mvvm  還有雙向資料繫結的原理:MVC:對專案的整體把控,M代表的是資料庫中的資料,V代表的是前端的檢視層,C用於處理M和V之間進行互動的業務邏輯(業務

HTML資料(Data Binding)

有沒想過在javascript中使用recordset?原來在客戶端操作資料也可以這樣簡單,定義一個數據源,將資料繫結在各種tag上,實現應用程式般的效果,酷斃了!(首先申明一點,文章的內容全部來自msdn,不過用我自己的話總結而已。)先看看這樣兩個例子:http://msd

C++程式使用QML機制

原文地址:http://doc.qt.digia.com/4.7-snapshot/qtbinding.html QML被定為一種可容易使用C++擴充套件,並可擴充套件C++的語言.使用Qt Declarative模組中的類可在C++中載入和操作QML中的元件,通過Qt的元物件系統,QML和C++物件可輕易的

WPF的ComboBox資料,使用Dictionary作為資料來源

ViewModel //屬性定義      Dictionary<int, string> _selGroupList;         /// <summary>         /// 分組下拉列表         /// </summar

C#圖解—Windows Forms資料技術

    BindingSource元件是.Net在Windows Forms資料繫結方面最重要的創舉之一,它能夠為窗體封裝資料來源,讓控制元件的資料繫結操作更加簡便。使用時,一般先在窗體上加入一個BindingSource元件,接著將BindingSource元件繫結至

c#(winform)ComboBox和ListBox新增項,寫一個使用者控制元件

用comboBox的資料繫結的方法很簡單,建一個數據源,繫結到ComboBox上,然後指定DisplayMember和 ValueMember就可以了。但是感覺好不靈活哦,如果我要在ComboBox上再新增一項,那怎麼

springmvc複雜資料以及表單回顯實現

做這個測試,請首先搭建好ssm整合demo,可以參考 1.springmvc的複雜資料繫結 : 首先貼出:原始po類 public class Student { private Integer sid; private Stri

搞懂:MVVM模型以及VUE資料資料劫持釋出訂閱模式

## 搞懂:MVVM模式和Vue中的MVVM模式 ### MVVM * MVVM : `model - view - viewmodel`的縮寫,說都能直接說出來 `model`:模型,`view`:檢視,`view-Model`:檢視模型 * V:檢視,即瀏覽器最前端渲染的頁面 * M:模型,資

WinFormComboBox控制元件資料

WinForm—ComboBox控制元件資料繫結 1、List< string > IList<string> list = new List<string>(); list.Add("上"); list.Add("下"); list.Add("左

c#之wpf 從mysql資料庫資料到頁面上

博主最近在做小專案時,需要將資料繫結到頁面上,無奈c#前端沒有學好,所以走了寫彎路。 1.listview:首先listview是一個比較好的展示資料庫的資料的控制元件,可是呢,在wpf中listview的用法和winform的有些不一樣,博主努力查詢多天(搜度娘,谷歌等都

C#winform動態新增button並事件

<strong><span style="font-size:18px;">最近做的專案中用到的,新手很多不懂的地方,一點一點學習弄出來的,記錄一下</span>&