怎样在dategrid中修改数据库中的数据?急!!!在线等... 比如我现在把数据库中的A表查询出来并显示到dategrid控件中,现在我想直接从dategrid中直接修改数据库中的数据要怎么办??我用的数据库是Sql2000谢了各位!!本人分少,请各位见谅!!多少也是点意思撒,呵呵... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 给你参考一下我的博客里的一篇文章http://www.cnblogs.com/spgoal/archive/2008/07/30/1256143.html 如果是用的数据集,可以在数据集的tableadapter中写SQL语句来进行修改 这和数据库访问方式有关吧adoado.net? DataGridView 是需要和 虚拟数据库捆绑起来的吧(DataSet) 你把DataGridView 只需看作是一个容器就好, 直接删除DataSet中的数据. 就可以删除DataGridView中的数据了. 你要是看不明白我给你写一段代码. 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 DateBookForm{ public partial class Test : Form { public Test() { InitializeComponent(); } // 刷新次数 private int LoadNum = 2; //创建SqlConnection对象 SqlConnection con = new SqlConnection("Server=.; DataBase = Test; uid = sa; pwd = sa"); //创建DataSet DataSet ds = new DataSet(); //引入SqlDataAdapter; SqlDataAdapter adapter; /// <summary> /// 窗体加载时 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Test_Load(object sender, EventArgs e) { FillSet(); } /// <summary> /// DataSet填充方法 /// </summary> private void FillSet() { //在刷新次数是第一次的时候访问数据库并且添加到DataSet中 if (LoadNum == 0) { con.Open(); //使用SqlDataAdapter adapter adapter = new SqlDataAdapter("select * from users",con); adapter.Fill(ds); adapter.Update(ds); //给DataGirdView捆绑数据 dataGridView1.DataSource = ds.Tables[0]; //判断是否有数据 if (dataGridView1.Rows.Count >= 1) { MessageBox.Show("填充成功!"); } con.Close(); } } /// <summary> /// 点击删除按钮 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button1_Click(object sender, EventArgs e) { try { //选中的行是1的时候 if (dataGridView1.SelectedRows.Count == 1) { //删除数据 dataGridView1.Rows.Remove(dataGridView1.SelectedRows[0]); /////////////////////////////////////// ////////////////////////////////////// //以下为附加代码,可用可不用, 作用是根据DataGirdView的现有数据,更新数据库. SqlCommandBuilder builder = new SqlCommandBuilder(adapter); adapter.Update(ds); } else { MessageBox.Show("请从新选择!"); } } catch (Exception ex) { MessageBox.Show(ex.Message); } } }}完美实现你要的功能, 注意注释.我写的很详细了. 1、当用户进入dategrid编辑状态时,记录值。如string x.2、当用户离开dategrid编辑状态时,判断x与当前值是否相同,如不同,则通过SQL修改。 建议楼主参考一下这里,ADO.NET中的多数据表操作浅析http://blog.csdn.net/zhzuo/archive/2004/08/06/67016.aspxhttp://blog.csdn.net/zhzuo/archive/2004/08/06/67037.aspx透过vs.net数据窗体向导看Ado.nethttp://blog.csdn.net/zhzuo/archive/2005/01/03/238273.aspx VS2008下,添加代码文件,怎么到最后,变成窗体文件了, 想请教当程序执行完毕时,progressBar消失,并且提示“执行完毕”对话框 人月数 问题 学习中的一个问题,编译不过去。 实现MSN的画板功能 windows CE开发 蓝牙打印机问题 请教抽象类与接口,多态与代理的区别以及什么时候用它们。 准备学习.net,请各位指点一下迷津? 如何实现两TextBox控件赋值后,第三个TextBox自动按公式计算赋值? CLR以后会不会升级呢? wsdl.exe的问题
http://www.cnblogs.com/spgoal/archive/2008/07/30/1256143.html
ado
ado.net?
就可以删除DataGridView中的数据了. 你要是看不明白我给你写一段代码. 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 DateBookForm
{
public partial class Test : Form
{
public Test()
{
InitializeComponent();
} // 刷新次数
private int LoadNum = 2; //创建SqlConnection对象
SqlConnection con = new SqlConnection("Server=.; DataBase = Test; uid = sa; pwd = sa");
//创建DataSet
DataSet ds = new DataSet();
//引入SqlDataAdapter;
SqlDataAdapter adapter;
/// <summary>
/// 窗体加载时
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Test_Load(object sender, EventArgs e)
{
FillSet(); } /// <summary>
/// DataSet填充方法
/// </summary>
private void FillSet()
{
//在刷新次数是第一次的时候访问数据库并且添加到DataSet中
if (LoadNum == 0)
{
con.Open(); //使用SqlDataAdapter adapter
adapter = new SqlDataAdapter("select * from users",con);
adapter.Fill(ds);
adapter.Update(ds);
//给DataGirdView捆绑数据
dataGridView1.DataSource = ds.Tables[0];
//判断是否有数据
if (dataGridView1.Rows.Count >= 1)
{
MessageBox.Show("填充成功!");
}
con.Close(); }
} /// <summary>
/// 点击删除按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
try
{
//选中的行是1的时候
if (dataGridView1.SelectedRows.Count == 1)
{
//删除数据
dataGridView1.Rows.Remove(dataGridView1.SelectedRows[0]); ///////////////////////////////////////
//////////////////////////////////////
//以下为附加代码,可用可不用, 作用是根据DataGirdView的现有数据,更新数据库.
SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
adapter.Update(ds);
}
else
{
MessageBox.Show("请从新选择!");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}完美实现你要的功能, 注意注释.我写的很详细了.
2、当用户离开dategrid编辑状态时,判断x与当前值是否相同,如不同,则通过SQL修改。
ADO.NET中的多数据表操作浅析
http://blog.csdn.net/zhzuo/archive/2004/08/06/67016.aspx
http://blog.csdn.net/zhzuo/archive/2004/08/06/67037.aspx
透过vs.net数据窗体向导看Ado.net
http://blog.csdn.net/zhzuo/archive/2005/01/03/238273.aspx