datagridview 数据处理方法 修改 删除 添加 下拉类表
更新时间:2023-06-08 22:53:01 阅读量: 实用文档 文档下载
- datagridview推荐度:
- 相关推荐
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
正在阅读:
datagridview 数据处理方法 修改 删除 添加 下拉类表06-08
关于责任伴我成长的日记作文03-12
快乐教育理念下的小学语文课堂教学策略分析-精品教育文档03-11
高校优秀辅导员教师事迹材料03-08
张忠洁与新世界(沈阳)房地产物业管理有限公司物业管理合同物业费纠纷一案07-17
2018年春高二英语月考试题11-24
WCDMA与cdma2000网络结构比较06-05
全国卫生应急工作培训大纲(2011-2015年).doc06-26
保安夜间管理规定02-28
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 数据处理
- 下拉
- datagridview
- 删除
- 添加
- 修改
- 方法
- 人教版八年级上册物理复习提纲
- 朱东:企业私有云按需部署
- 荆州ABBA导轨安装保养与使用
- 高跟鞋市场调研报告
- 各种数据库检索查法
- 中国传媒大学传媒经济学考研经验:如何看书
- 6层砖混结构住宅楼施工组织设计
- 高职高专学生顶岗实习安全管理模式研究
- 国家屋面顶防水施工及验收规范
- 《概率论与数理统计》课程教学大纲
- 中国青年志愿者注册管理办法
- 设备管理工作总结
- 青少年心理发展与教育 第一讲习题作业 马华逸
- 高低压电机节能高效好帮手——河南全新QXQ无刷无环起动器
- 车贷项目管理系统操作手册
- 2014陕西社区工作者面试热点:殡葬业暴利
- 2012广东省高职英语口语大赛 公外组话题
- 2011南安市最新科目四完整c2自动档小车试题
- 氧化还原反应习题3
- 国有资产出租出借情况