datagridview 数据处理方法 修改 删除 添加 下拉类表

更新时间:2023-06-08 22:53:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

datagridview 数据处理方法 修改 删除 添加 下拉类表 弹出窗口

Datagridview的三种处理数据方法

一、第一种方法

常规方法,在窗口界面上放入一个datagridview,在放各个textbox,然后通过选取对应的记录,修改textbox的值,所有的操作都在一个界面上进行,没什么多说的,大部分方法都这么做

二、弹出窗口方式

此方式,通过双击记录,或者是利用按钮操作,倾向于用按钮方式,一次修改或添加、删除一条记录。利用窗口传值方式,实现数据输入、输出,datagridview的显示跟新。 特点:

1。父子窗口之间的双向传值,很有参考意义

2.父子窗体监combox绑定数据表条件下,双向传值,很多资料接收的都不是很清晰, 主要是利用了combox.findstring()这个方法,传递回index,利用index得到value,好绕啊,废了很大劲。

3.datagridview修改、添加 数据下,不用重新访问数据库,而是直接显示修改的结果,这样感觉反应速度快,很有意义。

具体如下

修改界面

datagridview 数据处理方法 修改 删除 添加 下拉类表 弹出窗口

添加界面

主窗口代码 using System;

using System.Collections.Generic;

using ponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using monClass;

namespace WDZ

{

public partial class frmMain2 : Form

{ public frmMain2()

{

InitializeComponent();

}

private void frmMain2_Load(object sender, EventArgs e)

{

this

.dataGridView1.AutoSizeColumnsMode =

System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; //表格自适应宽度

//DataCon datacon = new DataCon();

//加载数据

DataOperate dataoperate = new DataOperate();

datagridview 数据处理方法 修改 删除 添加 下拉类表 弹出窗口

string strSql = "select * from sql3 ";

DataSet ds = dataoperate.getDs(strSql, "sql3");

dataGridView1.DataSource = ds.Tables[0];

//设置datagridview属性

dataGridView1.Columns[0].ReadOnly = true; //列不可编写

dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect; //选择全行

//dataGridView1.ReadOnly = true; //只读

dataGridView1.DefaultCellStyle.SelectionBackColor = Color.YellowGreen; 选择的行为颜色

//最后一行的星号行不显示,不允许用户添加数据

dataGridView1.AllowUserToAddRows = false;

//*************************

//加载下拉列表框

BindSex(); // 绑定性别下拉列表框

cmb_Temp.Visible = false; // 设置下拉列表框不可见

// 添加下拉列表框事件

cmb_Temp.SelectedIndexChanged += new

EventHandler(cmb_Temp_SelectedIndexChanged);

// 将下拉列表框加入到DataGridView控件中

this.dataGridView1.Controls.Add(cmb_Temp);

}

///

//**************************************************

//datagridview中下拉类表框的绑定

private ComboBox cmb_Temp = new ComboBox();

///绑定性别下拉列表框

///

private void BindSex()

{

DataTable dtSex = new DataTable();

DataOperate dataoperate = new DataOperate();

string strSql = "select * from user_class ";

DataSet ds = dataoperate.getDs(strSql, "user_class");

dtSex = ds.Tables[0]; //

datagridview 数据处理方法 修改 删除 添加 下拉类表 弹出窗口

cmb_Temp.ValueMember ="user_class_id"; //设置隐含的形式显示数值,起对应一定的名称

//cmb_Temp.ValueMember = "user_class";

cmb_Temp.DisplayMember = "user_class";

cmb_Temp.DataSource = dtSex;

cmb_Temp.DropDownStyle =ComboBoxStyle.DropDownList; //只能选择,不能写入 //cmb_Temp.DropDownStyle =ComboBoxStyle.DropDown; //可以写入

// cmb_Temp.DropDownStyle = ComboBoxStyle.Simple;

}

///

// 当用户选择下拉列表框时改变DataGridView单元格的内容

private void cmb_Temp_SelectedIndexChanged(object sender, EventArgs e)

{

if (dataGridView1.CurrentCell != null)

{

DataRowView myrowview = (DataRowView)cmb_Temp.SelectedItem;

//dataGridView1.CurrentCell.Value = cmb_Temp.SelectedValue.ToString(); dataGridView1.CurrentCell.Value = myrowview[2].ToString();//选取的文本 dataGridView1.CurrentCell.Tag = cmb_Temp.SelectedValue; //选取的编码

// MessageBox.Show("text:" + cmb_Temp.SelectedText + "-item:" +

cmb_Temp.SelectedItem.ToString() + "-value:" +

cmb_Temp.SelectedValue.ToString()+"-index:"+cmb_Temp.SelectedIndex.ToString());

// DataRowView myrowview = (DataRowView)cmb_Temp.SelectedItem;

//

MessageBox.Show(myrowview[0].ToString()+"--"+myrowview[1].ToString()+"--"+myrowview[2].ToString()); //获得对应的value和text

datagridview 数据处理方法 修改 删除 添加 下拉类表 弹出窗口

}

}

private void dataGridView1_CurrentCellChanged_1(object sender, EventArgs e) {

// 当用户移动到性别这一列时单元格显示下拉列表框

try

{

if (dataGridView1.CurrentCell.ColumnIndex == 3)

{

Rectangle rect =

dataGridView1.GetCellDisplayRectangle(dataGridView1.CurrentCell.ColumnIndex,

dataGridView1.CurrentCell.RowIndex, false);

string sexValue = dataGridView1.CurrentCell.Value.ToString(); //MessageBox.Show(sexValue);

cmb_Temp.Text = sexValue;

cmb_Temp.Left = rect.Left;

cmb_Temp.Top = rect.Top;

cmb_Temp.Width = rect.Width;

cmb_Temp.Height = rect.Height;

cmb_Temp.Visible = true;

}

else

{

cmb_Temp.Visible = false;

}

}

catch

{

}

}

private void dataGridView1_CellDoubleClick(object sender,

DataGridViewCellEventArgs e)

{

if (e.ColumnIndex == 0)

{

DataGridView dgv = sender as DataGridView;

if (dgv.Rows[e.RowIndex].Cells[1].Value != null)

{

datagridview 数据处理方法 修改 删除 添加 下拉类表 弹出窗口

string id = dgv.Rows[e.RowIndex].Cells[0].Value.ToString();

string user_id = dgv.Rows[e.RowIndex].Cells[1].Value.ToString(); string user_password=

dgv.Rows[e.RowIndex].Cells[2].Value.ToString();

string user_class = dgv.Rows[e.RowIndex].Cells[3].Value.ToString(); string user_name = dgv.Rows[e.RowIndex].Cells[4].Value.ToString(); string user_sex = dgv.Rows[e.RowIndex].Cells[5].Value.ToString(); string outUserid,

outUserpassword,outUserclass,outUsername,outUsersex;

DialogResult myresult;

this.ShowDialogForm(id, user_id, user_password, user_class, user_name, user_sex,

out outUserid, out outUserpassword, out outUserclass, out outUsername, out outUsersex, out myresult);

if (myresult==DialogResult.OK)

{

dgv.Rows[e.RowIndex].Cells[1].Value = outUserid;

dgv.Rows[e.RowIndex].Cells[2].Value = outUserpassword;

dgv.Rows[e.RowIndex].Cells[3].Value = outUserclass;

dgv.Rows[e.RowIndex].Cells[4].Value = outUsername;

dgv.Rows[e.RowIndex].Cells[5].Value = outUsersex;

}

}

}

}

private void ShowDialogForm(string id, string user_id, string user_password, string user_class, string user_name, string user_sex,

out string outUserid, out string outUserpassword, out string outUserclass, out string outUsername, out string outUsersex, out DialogResult myresult)

{

dialog2 frm = new dialog2();

//读取输入参数,显示在子窗口中

frm.Controls["ID_TB"].Text = id;

frm.Controls["USER_ID_TB"].Text = user_id;

frm.Controls["USER_PWD_TB"].Text = user_password;

frm.Controls["USER_CLASS_TB"].Text = user_class;

// ER_CLASS_CB.SelectedValue = 2;

datagridview 数据处理方法 修改 删除 添加 下拉类表 弹出窗口

frm.Controls["USER_NAME_TB"].Text = user_name;

frm.Controls["USER_SEX_TB"].Text = user_sex;

frm.ShowDialog(); //显示子窗口

//给输出参数赋值默认值

outUserid = user_id;

outUserpassword = user_password;

outUserclass = user_class;

outUsername = user_name;

outUsersex = user_sex;

//判断是否进行修改数据

myresult = frm.DialogResult;

if(myresult==DialogResult.OK)

{

//outUserid= frm.Controls["ID_TB"].Text;

outUserid= frm.Controls["USER_ID_TB"].Text ;

outUserpassword= frm.Controls["USER_PWD_TB"].Text ;

outUserclass= frm.Controls["USER_CLASS_CB"].Text ;

outUsername= frm.Controls["USER_NAME_TB"].Text ;

outUsersex= frm.Controls["USER_SEX_TB"].Text;

MessageBox.Show("修改了数据");

}

else

{

MessageBox.Show("没有修改数据!!");

}

frm.Dispose();

}

int selectrowindex = -1;

private void button2_Click(object sender, EventArgs e)

{

if(selectrowindex<0)

{

MessageBox.Show("请先选择一条记录数据!!");

return;

datagridview 数据处理方法 修改 删除 添加 下拉类表 弹出窗口

}

//采用弹出窗口方式,进行数据修改

DataGridView dgv = dataGridView1;

if (dgv.Rows[selectrowindex].Cells[1].Value != null)

{

//输入参数

string id = dgv.Rows[selectrowindex].Cells[0].Value.ToString();

string user_id = dgv.Rows[selectrowindex].Cells[1].Value.ToString(); string user_password =

dgv.Rows[selectrowindex].Cells[2].Value.ToString();

string user_class =

dgv.Rows[selectrowindex].Cells[3].Value.ToString();

string user_name =

dgv.Rows[selectrowindex].Cells[4].Value.ToString(); string user_sex =

dgv.Rows[selectrowindex].Cells[5].Value.ToString();

string outUserid, outUserpassword, outUserclass, outUsername, outUsersex; //输出参数

DialogResult myresult; //返回弹出窗口关闭状态

this.ShowDialogForm(id, user_id, user_password, user_class, user_name, user_sex, out outUserid, out outUserpassword, out outUserclass, out outUsername, out outUsersex, out myresult);

//如果修改了数据,把当前datagridview内容的对应值进行修改

if (myresult == DialogResult.OK)

{

dgv.Rows[selectrowindex].Cells[1].Value = outUserid;

dgv.Rows[selectrowindex].Cells[2].Value = outUserpassword; dgv.Rows[selectrowindex].Cells[3].Value = outUserclass; dgv.Rows[selectrowindex].Cells[4].Value = outUsername;

dgv.Rows[selectrowindex].Cells[5].Value = outUsersex;

}

}

}

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) {

datagridview 数据处理方法 修改 删除 添加 下拉类表 弹出窗口

selectrowindex = e.RowIndex; //获取当前选择的行坐标

}

//添加记录

private void button1_Click(object sender, EventArgs e)

{

//采用弹出窗口方式,进行数据修改

DataGridView dgv = dataGridView1;

//输入参数

string id = "-1";

string user_id =null;

string user_password = null;

string user_class = null;

string user_name = null;

string user_sex = null;

string outUserid, outUserpassword, outUserclass, outUsername, outUsersex; //输出参数

DialogResult myresult; //返回弹出窗口关闭状态

this.ShowDialogForm(id, user_id, user_password, user_class, user_name, user_sex,

out outUserid, out outUserpassword, out outUserclass, out outUsername, out outUsersex, out myresult);

//如果添加了数据,把当前datagridview内容的对应值进行修改

if (myresult == DialogResult.OK)

{

//添加行数据

((DataTable)dataGridView1.DataSource).Rows.Add(1, outUserid,

outUserpassword,outUserclass,outUsername,outUsersex);//dataGridView1是不能直接添加行的,只能在他的数据源里添,他会自动绑定

}

}

//删除一条记录

private void button3_Click(object sender, EventArgs e)

{

int myid =

int.Parse(dataGridView1.Rows[selectrowindex].Cells[0].Value.ToString());

datagridview 数据处理方法 修改 删除 添加 下拉类表 弹出窗口

string mysql = "delete from user_tb1 where ID=" + myid.ToString(); DataOperate dataoperate = new DataOperate(); dataoperate.getCom(mysql);

MessageBox.Show("删除数据成功");

//加载数据

mysql = "select * from sql3 ";

DataSet ds = dataoperate.getDs(mysql, "sql3");

dataGridView1.DataSource = ds.Tables[0];

/* //获取总页码 SELECT Count(id) AS number1 FROM user_tb1;

mysql = "SELECT Count(id) AS number1 FROM user_tb1 ";

DataSet ds = dataoperate.getDs(mysql, "user_tb1");

int indexsum = int.Parse(ds.Tables[0].Rows[0][0].ToString());

if (indexsum % pagesize == 0)

label5.Text = (indexsum / pagesize).ToString();

else

label5.Text = (indexsum / pagesize + 1).ToString();

pagesum = int.Parse(label5.Text);

//显示当前页面

try

{

button5_Click(sender, e); //刷新当前页面

}

catch (Exception)

{

throw;

}

*/

}

//

}

}

弹出窗口代码

using System;

datagridview 数据处理方法 修改 删除 添加 下拉类表 弹出窗口

using System.Collections.Generic;

using ponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using monClass;

namespace WDZ

{

public partial class dialog2 : Form

{

public dialog2()

{

InitializeComponent();

}

private void dialog2_Load(object sender, EventArgs e)

{

string mysql = "select * from user_class order by id";

bindcombox(USER_CLASS_CB, mysql, "user_class");

USER_CLASS_CB.SelectedIndex=USER_CLASS_CB.FindString(USER_CLASS_TB.Text,-1); //**非常重要,利用string查找到对应的index,然后就可以显示了,或者取value

}

// 填充Combox控件

private void bindcombox(ComboBox mycombox,string mysql,string tbname)

{

DataTable mydt = new DataTable();

DataOperate dataoperate = new DataOperate();

DataSet ds = dataoperate.getDs(mysql, tbname);

mydt = ds.Tables[0];

mycombox.ValueMember =mydt.Columns[1].ColumnName; //设置隐含的形式显示数值,起对应一定的名称

//cmb_Temp.ValueMember = "user_class";

mycombox.DisplayMember = mydt.Columns[2].ColumnName;

mycombox.DataSource = mydt;

mycombox.DropDownStyle = ComboBoxStyle.DropDownList; //只能选择,不能写入

datagridview 数据处理方法 修改 删除 添加 下拉类表 弹出窗口

//cmb_Temp.DropDownStyle =ComboBoxStyle.DropDown; //可以写入 // cmb_Temp.DropDownStyle = ComboBoxStyle.Simple;

}

private void button1_Click(object sender, EventArgs e)

{

//提交数据库操作,。。。。。修改数据

DataOperate mydopt = new DataOperate();

string mysql = "";

//修改数据

if(ID_TB.Text!="-1")

mysql = "update user_tb1 set user_id='" + USER_ID_TB.Text

+ "',user_password='" + USER_PWD_TB.Text

+ "',user_class_id=" + USER_CLASS_CB.SelectedValue

+ ",user_name='" + USER_NAME_TB.Text

+ "',user_sex='" + USER_SEX_TB.Text

+ "' where id=" +ID_TB.Text;

else if (ID_TB.Text == "-1")

{ mysql = "insert into user_tb1

(user_id,user_password,user_class_id,user_name,user_sex) values('"

+ USER_ID_TB.Text + "','"

+ USER_PWD_TB.Text + "',"

+ USER_CLASS_CB.SelectedValue + ",'"

+ USER_NAME_TB.Text + "','"

+ USER_SEX_TB.Text + "')";

}

// MessageBox.Show(mysql);

mydopt.getCom(mysql);

this.DialogResult = DialogResult.OK;

}

private void button2_Click(object sender, EventArgs e)

{

this.DialogResult = DialogResult.Cancel;

}

}

}

三、 直接在datagridview上修改、添加、删除。不需要添加textbox。而且在view

datagridview 数据处理方法 修改 删除 添加 下拉类表 弹出窗口

中有combox,下拉类表,可以一次修改多行数据,很有意义。

特点:

1. view中含有combox,利用了datarowview获得选取的value,index,item都可以了

2. 一次可以修改多行数据,利用dataapter的update的特性,比较麻烦

3. 可以直接在view中添加数据,同样利用update特性。

问题

这种方法,只能直接操作绑定的表,如果绑定的是视图,现在还没想好怎么解决。应该可以解决,需要记录下所有修改的记录的rowindex,然后利用sql语句分别进行修改表,感觉比较麻烦,放弃了。

代码如下:

using System;

using System.Collections.Generic;

using ponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms; using

monClass;

using System.Data.OleDb;

namespace WDZ

{

public partial class frmMain : Form

{

public frmMain()

{

datagridview 数据处理方法 修改 删除 添加 下拉类表 弹出窗口

InitializeComponent();

}

private void frmMain_Load(object sender, EventArgs e)

{

this.dataGridView1.AutoSizeColumnsMode =

System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; //表格自适应宽度

//DataCon datacon = new DataCon();

DataOperate dataoperate = new DataOperate();

string strSql = "select * from user_tb1 ";

DataSet ds = dataoperate.getDs(strSql, "user_tb1");

dataGridView1.DataSource = ds.Tables[0];

dataGridView1.Columns[0].ReadOnly = true; //列不可编写

dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect; //选择全行 //dataGridView1.ReadOnly = true; //只读

dataGridView1.DefaultCellStyle.SelectionBackColor = Color.YellowGreen; //选择的行为颜色

//最后一行的星号行不显示,不允许用户添加数据

dataGridView1.AllowUserToAddRows = false;

button6.Enabled = false;

button7.Enabled = false;

//初始化索引数组

for (int i = 0; i < 20; i++) intindex[i] = 255;

//*************************

//加载下拉列表框

BindSex(); // 绑定性别下拉列表框

cmb_Temp.Visible = false; // 设置下拉列表框不可见

// 添加下拉列表框事件

cmb_Temp.SelectedIndexChanged += new

EventHandler(cmb_Temp_SelectedIndexChanged);

// 将下拉列表框加入到DataGridView控件中

this.dataGridView1.Controls.Add(cmb_Temp);

datagridview 数据处理方法 修改 删除 添加 下拉类表 弹出窗口

}

private void button1_Click(object sender, EventArgs e)

{

string msg = String.Format("第{0}行,第{1}列,值:

{2}",dataGridView1.CurrentCell.RowIndex,dataGridView1.CurrentCell.ColumnIndex,dataGridView1.CurrentCell.Value);

label1.Text = "选择的单元格为:" + msg;

}

private void button2_Click(object sender, EventArgs e)

{

dataGridView1.DataSource = null;

}

private void button3_Click(object sender, EventArgs e)

{

this.dataGridView1.AutoSizeColumnsMode =

System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; //表格自适应宽度

//DataCon datacon = new DataCon();

DataOperate dataoperate = new DataOperate();

pagesize = int.Parse(textBox1.Text); //每页显示的记录数

string strSql = "select top " + pagesize.ToString()+ " * from user_tb1 "; DataSet ds = dataoperate.getDs(strSql, "user_tb1");

dataGridView1.DataSource = ds.Tables[0];

dataGridView1.Columns[0].ReadOnly = true; //列不可编写

//获取第1页页码

label2.Text = "1";

pagenumber = 1;

//获取总页码 SELECT Count(id) AS number1 FROM user_tb1;

strSql = "SELECT Count(id) AS number1 FROM user_tb1 ";

ds = dataoperate.getDs(strSql, "user_tb1");

int indexsum =int.Parse(ds.Tables[0].Rows[0][0].ToString());

if (indexsum % pagesize == 0)

label5.Text = (indexsum / pagesize).ToString();

else

label5.Text = (indexsum / pagesize + 1).ToString();

datagridview 数据处理方法 修改 删除 添加 下拉类表 弹出窗口

pagesum = int.Parse(label5.Text);

//设置 上一页 下一页 按钮的可用性

if (pagesum == 1) button7.Enabled = false;

else button7.Enabled = true;

button6.Enabled = true;

}

int[] intindex =new int[20]; //假设一张表上默认数据为20个

int selectindex = 0;

OleDbConnection conn;

OleDbDataAdapter adapter;

private DataTable dbconn(string strSql)

{

DataCon myconn = new DataCon();

conn = myconn.getCon();

this.adapter = new OleDbDataAdapter(strSql,conn);

DataTable dtSelect = new DataTable();

int rnt = this.adapter.Fill(dtSelect);

return dtSelect;

}

private Boolean dbUpdate()

{

string strSql = "select * from user_tb1";

DataTable dtUpdate = new DataTable();

dtUpdate = dbconn(strSql);

dtUpdate.Rows.Clear();

DataTable dtShow = new DataTable();

dtShow = (DataTable)this.dataGridView1.DataSource;

//dtUpdate.ImportRow(dtShow.Rows[intindex]); //如果不进行循环多行插入的话,只能够插入最后修改的一行数据。

for (int i = 0; i < 20;i++ )

{

if (intindex[i]!=255)

{

datagridview 数据处理方法 修改 删除 添加 下拉类表 弹出窗口

dtUpdate.ImportRow(dtShow.Rows[intindex[i]]);

}

}

try

{

//SqlCommandBuilder CommandBuilder;

OleDbCommandBuilder CommandBuilder;

CommandBuilder = new OleDbCommandBuilder(this.adapter);

this.adapter.Update(dtUpdate);

}

catch (Exception ex)

{

MessageBox.Show(ex.Message.ToString());

return false;

}

dtUpdate.AcceptChanges(); return true;

}

private void button4_Click(object sender, EventArgs e)

{

if (dbUpdate())

{

MessageBox.Show("修改成功!");

}

for (int i = 0; i < 20; i++)

intindex[i] = 255;

button5_Click(sender, e);

}

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) {

//intindex = e.RowIndex;

datagridview 数据处理方法 修改 删除 添加 下拉类表 弹出窗口

selectindex = e.RowIndex;

}

private void dataGridView1_CellValueChanged(object sender,

DataGridViewCellEventArgs e)

{

int mycellindex = e.RowIndex;

//MessageBox.Show(dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString());

if (dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString() == "" || dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString() == null)

MessageBox.Show("用户ID不能为空!!!");

else intindex[mycellindex % 20] = mycellindex;

// MessageBox.Show(mycellindex.ToString());

}

int pagenumber = 0;

int pagesum = 0;

int pagesize=2; //每页的条目数

private void button7_Click(object sender, EventArgs e) //显示下一页内容 {

DataOperate dataoperate = new DataOperate();

int pageindex =0 ; //已经显示的条目数

string strSql=null;

if (pagenumber != pagesum)

{

pageindex = pagenumber * pagesize;////已经显示的条目数

strSql = "SELECT TOP " + pagesize.ToString() + " * FROM user_tb1 WHERE id>(select max(id) from (select top " + pageindex.ToString() + " id from user_tb1 order by id))";

}

else if (pagenumber != 1)

{

pageindex = (pagenumber - 1) * pagesize;

strSql = "SELECT TOP " + pagesize.ToString() + " * FROM user_tb1 WHERE id>(select max(id) from (select top " + pageindex.ToString() + " id from user_tb1 order by id))";

datagridview 数据处理方法 修改 删除 添加 下拉类表 弹出窗口

}

else strSql = "select top " + pagesize.ToString() + " * from user_tb1 ";

//MessageBox.Show(strSql);//调试使用

DataSet ds = dataoperate.getDs(strSql, "user_tb1");

dataGridView1.DataSource = ds.Tables[0];

dataGridView1.Columns[0].ReadOnly = true; //列不可编写

//显示当前的页数

if (pagenumber < pagesum)

pagenumber = pagenumber + 1;

else

pagenumber = pagesum;

label2.Text = pagenumber.ToString();

}

private void button6_Click(object sender, EventArgs e)

{

DataOperate dataoperate = new DataOperate();

int pageindex = 0; //已经显示的条目数

string strSql = null;//

if ((pagenumber - 2) > 0)

{

pageindex = (pagenumber - 2) * pagesize;////已经显示的条目数 strSql = "SELECT TOP " + pagesize.ToString() + " * FROM user_tb1 WHERE id>(select max(id) from (select top " + pageindex.ToString() + " id from user_tb1 order by id))";

}

else strSql = "select top " + pagesize.ToString() + " * from user_tb1 ";

//MessageBox.Show(strSql);//调试使用

datagridview 数据处理方法 修改 删除 添加 下拉类表 弹出窗口

DataSet ds = dataoperate.getDs(strSql, "user_tb1");

dataGridView1.DataSource = ds.Tables[0];

dataGridView1.Columns[0].ReadOnly = true; //列不可编写

//显示当前的页数

if (pagenumber !=1)

pagenumber = pagenumber -1;

else

pagenumber =1;

label2.Text = pagenumber.ToString();

}

private void textBox1_TextChanged(object sender, EventArgs e)

{

pagesize = int.Parse(textBox1.Text);

}

private void button5_Click(object sender, EventArgs e) //取消按钮,其实就是从新读本页数据库,在显示一次

{

DataOperate dataoperate = new DataOperate();

int pageindex = 0; //已经显示的条目数

string strSql;

if ((pagenumber - 1) > 0)

{

pageindex = (pagenumber - 1) * pagesize;////已经显示的条目数

strSql = "SELECT TOP " + pagesize.ToString() + " * FROM user_tb1 WHERE id>(select max(id) from (select top " + pageindex.ToString() + " id from user_tb1 order by id))";

}

else strSql = "select top " + pagesize.ToString() + " * from user_tb1 ";

//MessageBox.Show(strSql);//调试使用

datagridview 数据处理方法 修改 删除 添加 下拉类表 弹出窗口

DataSet ds = dataoperate.getDs(strSql, "user_tb1");

dataGridView1.DataSource = ds.Tables[0];

dataGridView1.Columns[0].ReadOnly = true; //列不可编写

}

private void button8_Click(object sender, EventArgs e)

{

//显示到最后一页

DataOperate dataoperate = new DataOperate();

pagenumber = pagesum;

button7_Click(sender, e);

//添加行数据

((DataTable)dataGridView1.DataSource).Rows.Add(1,"","000000");//就这一句就可以了,兄弟!也就是说dataGridView1是不能直接添加行的,只能在他的数据源里添,他会自动绑定

}

private void button9_Click(object sender, EventArgs e)

{

int

myid=int.Parse(dataGridView1.Rows[selectindex].Cells[0].Value.ToString());

string mysql = "delete from user_tb1 where ID=" + myid.ToString();

DataOperate dataoperate = new DataOperate();

dataoperate.getCom(mysql);

MessageBox.Show("删除数据成功");

//获取总页码 SELECT Count(id) AS number1 FROM user_tb1;

mysql = "SELECT Count(id) AS number1 FROM user_tb1 ";

DataSet ds = dataoperate.getDs(mysql, "user_tb1");

int indexsum = int.Parse(ds.Tables[0].Rows[0][0].ToString());

if (indexsum % pagesize == 0)

label5.Text = (indexsum / pagesize).ToString();

else

本文来源:https://www.bwwdw.com/article/9y21.html

Top