购物网站的页面设计化学sem是什么意思
学了两个月的WINFORM,越学越感觉C#功能全面,前几天一直在用DATAGRIDVIEW的基本功能,今天尝试了解了 binddingNavigator & BindingSource和DATAGRIDVIEW进行联动,即点击上一下,下一行图标后,下面的textbox文本框的内容可以自动随着变化。
点击修改按钮可以在进行修改;
前提:
定义两个类变量:dt,ds
DataTable dt;BindingSource bs = new BindingSource();
要点:
1#、datagridview的datasource设为 BindingSource,并且将列表中的字段设置DataPropertyName 为DataTable指定的列;
private void BindData(){dataGridView1.DataSource = bs; //把数据源绑定在dataGridView1上//绑定每列的值显示在DatagridViewthis.dataGridView1.Columns[0].DataPropertyName = dt.Columns["id"].ToString();this.dataGridView1.Columns[1].DataPropertyName = dt.Columns["begintime"].ToString();this.dataGridView1.Columns[2].DataPropertyName = dt.Columns["endtime"].ToString();this.dataGridView1.Columns[3].DataPropertyName = dt.Columns["clientid"].ToString();this.dataGridView1.Columns[4].DataPropertyName = dt.Columns["clientname"].ToString();}
2、将textbox文本框的DataPropertyName 为DataTable指定的列;
this.txtName.DataBindings.Add("Text", bs, "ClientName");this.txtId.DataBindings.Add("Text", bs, "ClientId");this.txtGoods.DataBindings.Add("Text", bs, "Goodsid");this.txtAmount.DataBindings.Add("Text", bs, "amount");
3、将bindingNavigator1的BindingSource = bs,
附上全部代码 ,其中数据库的类定义在DBHelper;
using drp.DB;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace drp
{public partial class FrmTest : Form{DataTable dt;BindingSource bs = new BindingSource();public FrmTest(){InitializeComponent();}private void FrmTest_Load(object sender, EventArgs e){string sql = "select * from agreement";dt = DBHelper.ExecuteQuery(sql);bs.DataSource = dt;bindingNavigator1.BindingSource = bs;//把数据源绑定在bindingNavigator1上//把datagridview 的数据源绑定到bs BindData();this.txtName.DataBindings.Add("Text", bs, "ClientName");this.txtId.DataBindings.Add("Text", bs, "ClientId");this.txtGoods.DataBindings.Add("Text", bs, "Goodsid");this.txtAmount.DataBindings.Add("Text", bs, "amount");}//修改按钮private void button1_Click(object sender, EventArgs e){this.txtName.Enabled = true;this.txtId.Enabled = true;this.txtGoods.Enabled = true;this.txtAmount.Enabled = true;this.btnEdit.Enabled = false;this.btnSave.Enabled = true;}// 保存50 private void button2_Click(object sender, EventArgs e){//接受修改bs.EndEdit();DBHelper.UpdateDataTable(dt,"agreement");//将保存按钮改为 不可用this.btnSave.Enabled = false;this.btnEdit.Enabled = true;}private void button3_Click(object sender, EventArgs e){}private void toolStripSave_Click(object sender, EventArgs e){bs.EndEdit();BindData();DBHelper.UpdateDataTable(dt, "agreement");}private void BindData(){dataGridView1.DataSource = bs; //把数据源绑定在dataGridView1上//绑定每列的值显示在DatagridViewthis.dataGridView1.Columns[0].DataPropertyName = dt.Columns["id"].ToString();this.dataGridView1.Columns[1].DataPropertyName = dt.Columns["begintime"].ToString();this.dataGridView1.Columns[2].DataPropertyName = dt.Columns["endtime"].ToString();this.dataGridView1.Columns[3].DataPropertyName = dt.Columns["clientid"].ToString();this.dataGridView1.Columns[4].DataPropertyName = dt.Columns["clientname"].ToString();}}
}