急救:向datagridview添加数据,删除数据
本人是名学生,不太懂代码上的问题,所以请XD们可以详解datagridview 已经连上SQL2005中的其中一个数据库(自己建的)
我已经设置了 datagridview 启动编辑,启动添加,
我想直接按button1 为添加数据 button2为删除数据 并且与数据同步
谢谢你们了
这是我的毕业设计
--------------------编程问答-------------------- 不要这样添加按钮 启用datagridview自带的添加删除按钮就可以了 --------------------编程问答-------------------- 可以通过获取选中datagridview的行的主键
来进行数据的删除
添加数据直接进行数据库插入操作就可以 --------------------编程问答-------------------- 删除可以直接DEL。
adaper.update()就可以了。 --------------------编程问答-------------------- (1)删除数据 直接删除 dateTable 中的当前行,然后再删除数据库中相同自增ID号的记录
(2)新增数据 先往数据库中增加数据,并返回自增ID,填充到当前行. --------------------编程问答-------------------- this.dataGridView1.Rows.Add("a","b");
this.dataGridView1.Rows.RemoveAt(this.dataGridView1.SelectedRows[0].Index);
DataSet ds = new DataSet();
SqlDataAdapter sda;
private void btn1_Click(object sender, EventArgs e)
{
ds.Tables.Clear();
sda = new SqlDataAdapter("select * from Tb", conn);
sda.Fill(ds);
this.dataGridView1.DataSource = ds.Tables[0];
}
private void btn2_Click(object sender, EventArgs e)
{
SqlCommandBuilder scb = new SqlCommandBuilder(sda);
sda.Update(ds);
this.dataGridView1.DataSource = ds.Tables[0];
}
http://topic.csdn.net/u/20090130/20/1c6708ce-db4e-495a-a21b-101fecb9596d.html --------------------编程问答-------------------- 你的毕业设计太简单了吧,呵呵
首先,你要用SqlConnection连接到后台数据库,以一个教务管理数据库为例:
SqlConnection sqlConn;
SqlDataAdapter sqlDa;
DataSet sqlDs;
sqlConn = new SqlConnection("Data Source=.;Initial Catalog=jwinfo;Integrated Security=True;");
然后,你要读取出某个表的记录绑定到DataGridView中,下面是绑定显示学生信息表记录:
sqlDa = new SqlDataAdapter("SELECT * FROM 学生信息", sqlConn);
sqlDs = new DataSet();
sqlDa.Fill(sqlDs, "学生信息");
dataGridView1.DataSource = sqlDs.Tables["学生信息"];
这样你就可以直接在DataGridView中编辑数据了,编辑后,点击一个按钮保存:
//更新--------------------编程问答--------------------
private void button1_Click(object sender, EventArgs e)
{
if (sqlDs.HasChanges())
{
try
{
sqlDa.Update(sqlDs);
sqlDs.AcceptChanges();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "更新失败!", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
private void button2_Click(object sender, EventArgs e)--------------------编程问答-------------------- 贴出一个完整的吧,呵呵:
{
//删除首先要定位到当前选中的记录
int delRowIndex = dataGridView1.CurrentRow.Index;
this.dataGridView1.Rows.RemoveAt(delRowIndex);
//然后调用保存按钮保存删除操作
button1.PerformClick();
}
--------------------编程问答--------------------
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace DataGridViewDemo
{
public partial class DataGridViewCustomPaint : Form
{
SqlConnection sqlConn;
SqlDataAdapter sqlDa;
DataSet sqlDs;
public DataGridViewCustomPaint()
{
InitializeComponent();
}
private void DataGridViewCustomPaint_Load(object sender, EventArgs e)
{
sqlConn = new SqlConnection("Data Source=.;Initial Catalog=jwinfo;Integrated Security=True;");
sqlDa = new SqlDataAdapter("SELECT * FROM 学生信息", sqlConn);
sqlDs = new DataSet();
sqlDa.Fill(sqlDs, "学生信息");
dataGridView1.DataSource = sqlDs.Tables["学生信息"];
//然后用SqlCommandBuilder自动为SqlDataAdapter生成Insert、Update、Delete命令
SqlCommandBuilder sqlCmdBuilder = new SqlCommandBuilder(sqlDa);
}
//更新
private void button1_Click(object sender, EventArgs e)
{
if (sqlDs.HasChanges())
{
try
{
sqlDa.Update(sqlDs.Tables["学生信息"]);
sqlDs.Tables["学生信息"].AcceptChanges();
MessageBox.Show("更新成功!", "操作结果",MessageBoxButtons.OK, MessageBoxIcon.Information );
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "更新失败!", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
//删除
private void button2_Click(object sender, EventArgs e)
{
//删除首先要定位到当前选中的记录
int delRowIndex = dataGridView1.CurrentRow.Index;
if (delRowIndex != -1)
this.dataGridView1.Rows.RemoveAt(delRowIndex);
//然后调用保存按钮保存删除操作
button1.PerformClick();
}
}
}
这个答案很完整了! --------------------编程问答-------------------- 你也太浮躁了吧,最简单的删除查询都不知道怎么做,还是去看书吧,现在的参考书这方面控件的使用都说的很详细的、 --------------------编程问答--------------------
………… --------------------编程问答-------------------- 我也不会
呵呵 进来一起学习 --------------------编程问答-------------------- computerfox 总是很详细 定 --------------------编程问答-------------------- 加我QQ我可以給你個例子,635140279 --------------------编程问答--------------------
我勒个去 原来这么简单!! --------------------编程问答-------------------- 学习。。。。 --------------------编程问答--------------------
我就喜欢这样的人 对初学者很有耐心 --------------------编程问答-------------------- 感谢“computerfox”的CODE,我解决问题了! --------------------编程问答-------------------- 哎。慢慢来,多做些就会了。。。。 --------------------编程问答-------------------- 连接sqlconnection,执行sqlcommand,更新insert,修改update,查询select,删除delete,绑定databind
数据集dataset,填充数据集dt.fill(ds) --------------------编程问答-------------------- 我也不会
进来一起学习 --------------------编程问答-------------------- View怎么能删除?大家有没有用过呀? --------------------编程问答-------------------- 学习了!! --------------------编程问答-------------------- 来学习 XD --------------------编程问答-------------------- --------------------编程问答-------------------- computerfox 果然讲解详细,彰显大家风范,我辈之楷模 --------------------编程问答-------------------- --------------------编程问答-------------------- 毕业设计。。。
我学C#的第一个上机题目。。。
加油啊!LZ --------------------编程问答-------------------- 学习~~不过我也好奇为什么不用gridview自带的添加删除啊? --------------------编程问答-------------------- 学习。。。 --------------------编程问答-------------------- 看了那个回复,照着做了,N久,什么找不到表啊,什么动态SQL啊,,啥错误都来了,,最后找到一个办法,给表设置主键,,解决了,, --------------------编程问答--------------------
非常感谢8楼对我们这些小白的帮助,但是我发现有个错误
sqlDa.Update(sqlDs.Tables["学生信息"]);
sqlDs.Tables["学生信息"].AcceptChanges();
两句应该互换位置,因为这样会引发违反并发性错误。比如在添加一行,再立刻删除这一行时,如果先update,就会发现内存里的dataset的这一行没有更新 --------------------编程问答-------------------- 对不起,是我错了,是由于我使用的access数据库主键自增的原因,8楼写的没错,非常抱歉!
补充:.NET技术 , C#