亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#應用BindingSource實現數據同步的方法

2020-01-24 02:28:50
字體:
來源:轉載
供稿:網友

本文以實例形式講述了C#應用BindingSource實現數據同步的方法,對C#數據庫程序開發來說具有一定的參考借鑒價值。具體實現方法如下:

下面的代碼示例演示如何使用 BindingSource 組件,將三個控件(兩個文本框控件和一個 DataGridView 控件)綁定到 DataSet 中的同一列。

該示例演示如何處理 BindingComplete 事件,并確保當一個文本框的文本值更改時,會用正確的值更新其他文本框和 DataGridView 控件。

具體代碼如下:

// Declare the controls to be used.private BindingSource bindingSource1;private TextBox textBox1;private TextBox textBox2;private DataGridView dataGridView1;private void InitializeControlsAndDataSource(){  // Initialize the controls and set location, size and   // other basic properties.  this.dataGridView1 = new DataGridView();  this.bindingSource1 = new BindingSource();  this.textBox1 = new TextBox();  this.textBox2 = new TextBox();  this.dataGridView1.ColumnHeadersHeightSizeMode =    DataGridViewColumnHeadersHeightSizeMode.AutoSize;  this.dataGridView1.Dock = DockStyle.Top;  this.dataGridView1.Location = new Point(0, 0);  this.dataGridView1.Size = new Size(292, 150);  this.textBox1.Location = new Point(132, 156);  this.textBox1.Size = new Size(100, 20);  this.textBox2.Location = new Point(12, 156);  this.textBox2.Size = new Size(100, 20);  this.ClientSize = new Size(292, 266);  this.Controls.Add(this.textBox2);  this.Controls.Add(this.textBox1);  this.Controls.Add(this.dataGridView1);  // Declare the DataSet and add a table and column.  DataSet set1 = new DataSet();  set1.Tables.Add("Menu");  set1.Tables[0].Columns.Add("Beverages");  // Add some rows to the table.  set1.Tables[0].Rows.Add("coffee");  set1.Tables[0].Rows.Add("tea");  set1.Tables[0].Rows.Add("hot chocolate");  set1.Tables[0].Rows.Add("milk");  set1.Tables[0].Rows.Add("orange juice");  // Set the data source to the DataSet.  bindingSource1.DataSource = set1;  //Set the DataMember to the Menu table.  bindingSource1.DataMember = "Menu";  // Add the control data bindings.  dataGridView1.DataSource = bindingSource1;  textBox1.DataBindings.Add("Text", bindingSource1,     "Beverages", true, DataSourceUpdateMode.OnPropertyChanged);  textBox2.DataBindings.Add("Text", bindingSource1,     "Beverages", true, DataSourceUpdateMode.OnPropertyChanged);  bindingSource1.BindingComplete +=     new BindingCompleteEventHandler(bindingSource1_BindingComplete);}private void bindingSource1_BindingComplete(object sender, BindingCompleteEventArgs e){  // Check if the data source has been updated, and that no error has occured.  if (e.BindingCompleteContext ==     BindingCompleteContext.DataSourceUpdate && e.Exception == null)    // If not, end the current edit.    e.Binding.BindingManagerBase.EndCurrentEdit();}

下面的代碼演示如何使用 BindingSource 組件跨窗體共享綁定數據,具體代碼如下:

using System;using System.Drawing;using System.Windows.Forms;using System.Data;namespace BindingSourceMultipleForms{  public class MainForm : Form  {    public MainForm()    {      this.Load += new EventHandler(MainForm_Load);    }    private BindingSource bindingSource1;    private Button button1;    private void MainForm_Load(object sender, EventArgs e)    {      InitializeData();    }    private void InitializeData()    {      bindingSource1 = new System.Windows.Forms.BindingSource();      // Handle the BindingComplete event to ensure the two forms      // remain synchronized.      bindingSource1.BindingComplete +=         new BindingCompleteEventHandler(bindingSource1_BindingComplete);      ClientSize = new System.Drawing.Size(292, 266);      DataSet dataset1 = new DataSet();      // Some xml data to populate the DataSet with.      string musicXml =        "<?xml version='1.0' encoding='UTF-8'?>" +        "<music>" +         "<recording><artist>Dave Matthews</artist>" +         "<cd>Under the Table and Dreaming</cd>" +          "<releaseDate>1994</releaseDate><rating>3.5</rating></recording>" +         "<recording><artist>Coldplay</artist><cd>X&Y</cd>" +          "<releaseDate>2005</releaseDate><rating>4</rating></recording>" +         "<recording><artist>Dave Matthews</artist>" +          "<cd>Live at Red Rocks</cd>" +          "<releaseDate>1997</releaseDate><rating>4</rating></recording>" +         "<recording><artist>U2</artist>" +          "<cd>Joshua Tree</cd><releaseDate>1987</releaseDate>" +          "<rating>5</rating></recording>" +         "<recording><artist>U2</artist>" +         "<cd>How to Dismantle an Atomic Bomb</cd>" +          "<releaseDate>2004</releaseDate><rating>4.5</rating></recording>" +         "<recording><artist>Natalie Merchant</artist>" +         "<cd>Tigerlily</cd><releaseDate>1995</releaseDate>" +         "<rating>3.5</rating></recording>" +         "</music>";      // Read the xml.      System.IO.StringReader reader = new System.IO.StringReader(musicXml);      dataset1.ReadXml(reader);       // Get a DataView of the table contained in the dataset.      DataTableCollection tables = dataset1.Tables;      DataView view1 = new DataView(tables[0]);      // Create a DataGridView control and add it to the form.      DataGridView datagridview1 = new DataGridView();      datagridview1.ReadOnly = true;      datagridview1.AutoGenerateColumns = true;      datagridview1.Width = 300;      this.Controls.Add(datagridview1);      bindingSource1.DataSource = view1;      datagridview1.DataSource = bindingSource1;      datagridview1.Columns.Remove("artist");      datagridview1.Columns.Remove("releaseDate");      // Create and add a button to the form.       button1 = new Button();      button1.AutoSize = true;      button1.Text = "Show/Edit Details";      this.Controls.Add(button1);      button1.Location = new Point(50, 200);      button1.Click += new EventHandler(button1_Click);    }    // Handle the BindingComplete event to ensure the two forms    // remain synchronized.    private void bindingSource1_BindingComplete(object sender, BindingCompleteEventArgs e)    {      if (e.BindingCompleteContext == BindingCompleteContext.DataSourceUpdate        && e.Exception == null)        e.Binding.BindingManagerBase.EndCurrentEdit();    }    // The detailed form will be shown when the button is clicked.    private void button1_Click(object sender, EventArgs e)    {      DetailForm detailForm = new DetailForm(bindingSource1);      detailForm.Show();    }    [STAThread]    static void Main()    {      Application.EnableVisualStyles();      Application.Run(new MainForm());    }  }  // The detail form class.   public class DetailForm : Form  {    private BindingSource formDataSource;    // The constructor takes a BindingSource object.    public DetailForm(BindingSource dataSource)    {      formDataSource = dataSource;      this.ClientSize = new Size(240, 200);      TextBox textBox1 = new TextBox();      this.Text = "Selection Details";      textBox1.Width = 220;      TextBox textBox2 = new TextBox();      TextBox textBox3 = new TextBox();      TextBox textBox4 = new TextBox();      textBox4.Width = 30;      textBox3.Width = 50;      // Associate each text box with a column from the data source.      textBox1.DataBindings.Add("Text", formDataSource, "cd", true, DataSourceUpdateMode.OnPropertyChanged);      textBox2.DataBindings.Add("Text", formDataSource, "artist", true);      textBox3.DataBindings.Add("Text", formDataSource, "releaseDate", true);      textBox4.DataBindings.Add("Text", formDataSource, "rating", true);      textBox1.Location = new Point(10, 10);      textBox2.Location = new Point(10, 40);      textBox3.Location = new Point(10, 80);      textBox4.Location = new Point(10, 120);      this.Controls.AddRange(new Control[] { textBox1, textBox2, textBox3, textBox4 });    }  }}

希望本文所述對大家的C#程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久香蕉精品香蕉| 亚洲人成毛片在线播放| 久久精品夜夜夜夜夜久久| 欧美日韩美女在线| 国产这里只有精品| 日韩视频在线免费| 亚洲黄一区二区| 亚洲激情在线观看视频免费| 欧美中文在线视频| 超薄丝袜一区二区| 亚洲第一福利网| 亚洲视频精品在线| 国产伦精品免费视频| 亚洲欧美国内爽妇网| 色妞色视频一区二区三区四区| 成人国产精品免费视频| 国产精品一区二区三区久久| 欧美孕妇孕交黑巨大网站| 精品美女永久免费视频| 久久免费观看视频| 成人在线激情视频| 欧美日韩高清在线观看| 日本精品久久久久影院| 日本一区二区三区在线播放| 亚洲欧洲一区二区三区久久| 欧美国产日韩xxxxx| 欧美电影免费观看高清| www.亚洲免费视频| 久久久这里只有精品视频| 成人乱色短篇合集| 久久国产天堂福利天堂| 欧美福利视频在线观看| 欧美整片在线观看| 国精产品一区一区三区有限在线| 亚洲国产精品va在线| 国产不卡视频在线| 亚洲视频综合网| 日韩在线视频免费观看高清中文| 国产美女直播视频一区| 97精品一区二区三区| 俺去亚洲欧洲欧美日韩| 日韩欧美在线视频日韩欧美在线视频| 欧美日韩免费观看中文| 国产美女久久精品香蕉69| 欧美午夜丰满在线18影院| 国产精品视频一区二区三区四| 国产精品美女呻吟| 日韩美女免费线视频| 精品亚洲夜色av98在线观看| 国产精品视频xxxx| 国产精品一区二区久久| 欧美成人合集magnet| 亚洲www视频| 国产精品午夜一区二区欲梦| 国产伦精品免费视频| 欧美日韩国产成人在线观看| 色哟哟亚洲精品一区二区| 久久av在线播放| 日本欧美精品在线| 欧美一级视频在线观看| 久久夜色精品国产亚洲aⅴ| 亚洲成人黄色在线观看| 国产日韩视频在线观看| 亚洲性视频网站| 亚洲欧美激情四射在线日| 欧美电影免费观看大全| 国产一区二区在线播放| 日本三级韩国三级久久| 国产精品久久久久久久久久小说| 色偷偷亚洲男人天堂| 在线观看日韩视频| 福利视频一区二区| 欧美激情三级免费| 国产精品电影观看| 欧美日韩亚洲精品内裤| 国产成人在线视频| 国产精品人人做人人爽| 九九热这里只有在线精品视| 亚洲电影免费观看高清完整版在线观看| 久久久最新网址| 91精品视频一区| 亚洲热线99精品视频| 精品久久在线播放| 欧美激情在线观看视频| 色综合久久久久久中文网| 精品无码久久久久久国产| 久久亚洲精品中文字幕冲田杏梨| 一本久久综合亚洲鲁鲁| 91色在线观看| 久久精品久久精品亚洲人| 国产精品久久久久久久久男| 91影院在线免费观看视频| 日韩电影在线观看中文字幕| 精品香蕉在线观看视频一| 欧美午夜xxx| 亚洲国产欧美一区二区三区同亚洲| 欧美日韩高清在线观看| 国产精品视频中文字幕91| 色综合色综合久久综合频道88| 欧美肥老妇视频| 亚洲精品一区二区三区婷婷月| 性欧美暴力猛交69hd| 国产精品久久婷婷六月丁香| 色偷偷偷综合中文字幕;dd| 欧美精品福利在线| 超碰日本道色综合久久综合| 亚洲精品国产精品国自产观看浪潮| 日韩亚洲欧美成人| 国产精品视频精品| 国产精品视频一区国模私拍| 欧美乱人伦中文字幕在线| 亚洲人成网站999久久久综合| 夜夜狂射影院欧美极品| 亚洲国产三级网| 亚洲一区免费网站| 欧美在线性爱视频| 51ⅴ精品国产91久久久久久| 国产精品视频中文字幕91| 国产精品国内视频| 亚洲影院在线看| 91日韩在线视频| 午夜精品福利视频| 狠狠躁夜夜躁人人躁婷婷91| 国产福利视频一区二区| 91亚洲精品久久久久久久久久久久| 久久天天躁狠狠躁夜夜躁2014| 国产精品国产自产拍高清av水多| 欧美精品电影免费在线观看| 国产一区二区丝袜高跟鞋图片| 精品久久久久人成| 国产精品免费看久久久香蕉| 韩国19禁主播vip福利视频| 国产综合久久久久| 国产成人精品在线观看| 国产欧美一区二区三区在线看| www国产91| 韩国欧美亚洲国产| 精品日本美女福利在线观看| 中文字幕亚洲无线码a| 日韩av片免费在线观看| 国产精品女视频| 日韩精品视频免费专区在线播放| www.午夜精品| 狠狠色噜噜狠狠狠狠97| 国产精品美女久久久久av超清| 国产精品无码专区在线观看| 最近2019中文字幕mv免费看| 国产成人精品免高潮在线观看| 久久亚洲欧美日韩精品专区| 欧美在线视频一二三| 欧美一级片久久久久久久| 日韩有码视频在线| 国产精品久久色| 91精品久久久久久久久青青| 日韩精品免费在线视频观看| 久久91超碰青草是什么| 成人乱色短篇合集| 国产精品自拍小视频| 国产一区二区三区在线看| 欧美精品久久久久| 2019中文字幕免费视频| 亚洲男人7777| 亚洲免费高清视频| 欧美制服第一页|