BindingNavigator操作DatagridView的数据
参考
http://wenku.baidu.com/link?url=NWfEfArPZvDO_aI-xEKBHVGoZY9wQO_Oty_GCsGLiPspheCzFYLf_dytuWAqN2_0AvLpK-iAun55qe7HPKjfRJ1vI8N4EHADeyQ1hNnQrdW
1、往窗体拉一个BindingNavigator:如图绿色框,就是一个数据导航栏
再拉一个DataGridView,显示数据,我添加了三列,对应要显示的三列数据
再拉一个BindingSource,作为上面两个的媒人

数据库数据如下:

代码如下:
namespace gjjyOffline
{
public partial class fenye : Form
{
public fenye()
{
InitializeComponent();
} private void fenye_Load(object sender, EventArgs e)
{
//加载显示数据
using (SQLiteConnection con = new SQLiteConnection("Data Source这一串"))
{
con.Open();
using (SQLiteCommand cmd = new SQLiteCommand())
{
cmd.Connection = con;
cmd.CommandText = string.Format(@"select * from jy_dic_crop");//要显示的数据
int rows = cmd.ExecuteNonQuery();
SQLiteDataAdapter sda = new SQLiteDataAdapter(cmd);
DataSet ds = new DataSet();
sda.Fill(ds);
//con.Close();
DataTable dtbl = ds.Tables[];
dataGridView1.AutoGenerateColumns = false;
this.dataGridView1.DataSource = dtbl;
//绑定每列的值显示在DatagridView
this.dataGridView1.Columns["column1"].DataPropertyName = dtbl.Columns["id"].ToString();//column1是DatagridView的第一列的name值
this.dataGridView1.Columns["column2"].DataPropertyName = dtbl.Columns["name"].ToString();
this.dataGridView1.Columns["column3"].DataPropertyName = dtbl.Columns["status"].ToString();
//将DatagridView的数据通过BindingSource与BindingNavigator连接起来
BindingSource bs = new BindingSource();
bs.DataSource = dtbl;
bindingNavigator1.BindingSource = bs;
dataGridView1.DataSource = bs; }
}
}
}
}
效果如下:
DatagridView的数据与BindingNavigator导航栏联系起来了

分页的实现:
重新编辑BindingNavigator

在上面代码的基础上,
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;
using System.Data.SQLite; namespace gjjyOffline
{
public partial class fenye : Form
{
public fenye()
{
InitializeComponent();
} int pageSize = ;//页面行数
int total = ;
int pageCount = ;//总页数 int pageCurrent = ;
int currentRow = ;//当前记录数从0开始 int nStartPos = ;
int nEndPos = ; DataTable dtbl = null; private void LoadData()
{
nStartPos = ;
nEndPos = ;
DataTable dtTemp = dtbl.Clone();
if (pageCurrent == pageCount)
{
nEndPos = total;
}
else
{
nEndPos = pageSize * pageCurrent;
}
nStartPos = currentRow; toolStripLabel2.Text = "/" + pageCount.ToString();
if (dtbl.Rows.Count == )
{
toolStripTextBox1.Text = "";
}
else
{
toolStripTextBox1.Text = Convert.ToString(pageCurrent);
}
this.label2.Text = total.ToString();
//从元数据源复制记录行
if (dtbl.Rows.Count != )
{
for (int i = nStartPos; i < nEndPos; i++)
{
dtTemp.ImportRow(dtbl.Rows[i]);
currentRow++;
} }
bindingSource1.DataSource = dtTemp;
bindingNavigator1.BindingSource = bindingSource1;
dataGridView1.DataSource = bindingSource1; } private void fenye_Load(object sender, EventArgs e)
{
//加载显示数据
using (SQLiteConnection con = new SQLiteConnection("Data Source这一串"))
{
con.Open();
using (SQLiteCommand cmd = new SQLiteCommand())
{
cmd.Connection = con;
cmd.CommandText = string.Format(@"select * from jy_dic_crop");
int rows = cmd.ExecuteNonQuery();
SQLiteDataAdapter sda = new SQLiteDataAdapter(cmd);
DataSet ds = new DataSet();
sda.Fill(ds);
//con.Close();
dtbl = ds.Tables[];
dataGridView1.AutoGenerateColumns = false;
this.dataGridView1.DataSource = dtbl; this.dataGridView1.Columns["column1"].DataPropertyName = dtbl.Columns["id"].ToString();
this.dataGridView1.Columns["column2"].DataPropertyName = dtbl.Columns["name"].ToString();
this.dataGridView1.Columns["column3"].DataPropertyName = dtbl.Columns["status"].ToString(); BindingSource bs = new BindingSource();
bs.DataSource = dtbl;
bindingNavigator1.BindingSource = bs;
dataGridView1.DataSource = bs; pageSize = ;
total = dtbl.Rows.Count;
pageCount=(total/pageSize);
if((total%pageSize>))
{
pageCount++;
}
pageCurrent = ;
currentRow = ;//当前记录数从0开始 LoadData();
}
}
} private void bindingNavigator1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
if(e.ClickedItem.Text=="上一页")
{
if(pageCurrent>=)
{
pageCurrent--;
}
if (pageCurrent <= )
{
pageCurrent++;
MessageBox.Show("已经是第一页");
return;
}
else
{
currentRow=pageSize*(pageCurrent-);
}
//
LoadData();
// } if(e.ClickedItem.Text=="下一页")
{
if(pageCurrent<=pageCount)
{
pageCurrent++;
}
if (pageCurrent > pageCount)
{
pageCurrent--;
MessageBox.Show("已经是最后一页");
return;
}
else
{
currentRow=pageSize*(pageCurrent-);
}
//
nStartPos = ;
nEndPos = ;
DataTable dtTemp = dtbl.Clone();
if (pageCurrent == pageCount)
{
nEndPos = total;
}
else
{
nEndPos = pageSize * pageCurrent;
}
nStartPos = currentRow; toolStripLabel2.Text = "/" + pageCount.ToString();
if (dtbl.Rows.Count == )
{
toolStripTextBox1.Text = "";
}
else
{
toolStripTextBox1.Text = Convert.ToString(pageCurrent);
}
this.label2.Text = total.ToString();
//从元数据源复制记录行
if (dtbl.Rows.Count != )
{
for (int i = nStartPos; i < nEndPos; i++)
{
dtTemp.ImportRow(dtbl.Rows[i]);
currentRow++;
}
}
bindingSource1.DataSource = dtTemp;
bindingNavigator1.BindingSource = bindingSource1;
dataGridView1.DataSource = bindingSource1;
//
}
}
}
}
BindingNavigator操作DatagridView的数据的更多相关文章
- 将listBox中信息显示在dataGridview中,操作datagridview后删除listBox信息和SQL数据库信息 续(浅谈listBox..)
应用场景 对datagridview控件使用了解,以及操作datagridview选中的信息删除,并且有二次确认后才删除用户信息.相应的删除listbox中用户信息,下面一起看看需要哪些准备 ...
- C# 数据库dataGridView刷新数据和主外键判断
本文主要讲诉在使用VS2012+SQL Server数据库做系统中,通常会遇到几个问题.使用dataGridView控件在修改.删除.插入数据后,怎样刷新数据显示操作后的结果.同时在对数据操作时通常会 ...
- DataGridView显示数据的两种方法
1.简介 DataGridView空间是我们经常使用的显示数据的控件,它有极高的可配置性和可扩展性. 2.显示数据 DataGridView显示数据一般我们经常使用的有两种方法,一种是直接设置Data ...
- 初识DataGridView 表格数据控件
DataGridView控件提供了一种强大而灵活的以表格形式显示数据的方式,用户可以使用DataGridView控件来显示少量数据的只读视图,也可以对其进行缩放以显示特大数据集的可编辑视图. 扩展Da ...
- 【开源】OSharp3.0框架解说系列(6.2):操作日志与数据日志
OSharp是什么? OSharp是个快速开发框架,但不是一个大而全的包罗万象的框架,严格的说,OSharp中什么都没有实现.与其他大而全的框架最大的不同点,就是OSharp只做抽象封装,不做实现.依 ...
- JAVASE02-Unit07: 基本IO操作 、 文本数据IO操作
基本IO操作 . 文本数据IO操作 java标准IO(input/output)操作 package day07; import java.io.FileOutputStream; import ja ...
- osharp3 操作日志之数据日志 控制增强
osharp3 原来的数据日志,有配置文件中有这总开关,DataLoggingEnabled,原来的程序是,这个总开关关了,就无法记录数据日志了,,如果开了,,他不管记录不记录数据日志,系统都会存数据 ...
- Jqgrid入门-操作表格的数据(二)
上一篇中,Jqgrid已经可以从服务端获得数据,并显示在Grid表格中了.下面说一下,如何操作表格及其数据. jqGrid有很多方法函数,用来操作数据或者操作Grid表格本身.jq ...
- 关闭“编辑窗体”后, 主窗体的DatagridView刷新数据的问题
问题:在关闭一个窗体2后,要刷新窗体1内的datagridview的数据,直接窗体1.datagridview.datasource=dt 是没用的. 解决办法如下: 在主窗体里 创建编辑窗体时 加上 ...
随机推荐
- (转)Java + Excel 接口自动化
最近项目比较悠闲,想找点事干,写了个 Excel 接口测试的 "框架" 以前用 python 写过一个,这次用 java, 应该说框架都不算,反正就是写了,能帮我解决问题就行. 当 ...
- .net ftp上传文件方法
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI ...
- surfaceview介绍
[1]surfaceview 控件是一个重量级控件 [2]内部维护了2个线程 A 获取数据 负责显示 B 负责显示 获取数据 [3]他可以直接在子线程更新ui ...
- excel 里面拼接 MySQL insert 语句
="('"&A2&"',"&" '"&B2&"','"&C2&& ...
- C#_拆箱跟装箱
Net的类型分为两种,一种是值类型,另一种是引用类型.这两个类型的本质区别,值类型数据是分配在栈中,而引用类型数据分配在堆上.那么如果要把一个值类型数据放到堆上,就需要装箱操作:反之,把一个放在堆上的 ...
- python剑指网络
>>> #获取hostname ... >>> host_name=socket.gethostname() >>> print "%s ...
- ManyToMany关联方式----
http://blog.csdn.net/sinat_18882775/article/details/51171427 好的博客 系列文章总结
- 解决xshell 中文乱码
在xshell命令行里面 输入: locale输出: LANG=zh_CN.UTF-8LC_CTYPE="zh_CN.UTF-8"LC_NUMERIC="zh_CN.U ...
- linux笔记:linux常用命令-权限管理命令
一个文件的权限只有root和所有者可以更改. 权限管理命令:chmod(改变文件或目录的权限) 权限的数字表示: 用权限加减的方式改变权限(u代表所有者,g代表所属组,o代表其他人,a代表所有人): ...
- jQuery.outerWidth() 函数详解
outerWidth()函数用于设置或返回当前匹配元素的外宽度. 外宽度默认包括元素的内边距(padding).边框(border),但不包括外边距(margin)部分的宽度.你也可以指定参数为tru ...