谁能帮我写一个关于C#控件dataGridView1对数据库修改和删除的代码,并更新到数据库中的

我的数据库是cpxsyglxt,表是:商品库存信息表,字段是:商品编号(char15),商品名称(char15)商品规格((char30)),库存量(int),计量单位(... 我的数据库是 cpxsyglxt,
表是: 商品库存信息表, 字段是 : 商品编号(char15),商品名称(char15)商品规格((char30)),库存量(int),计量单位(char15),入库时间(smalldatetime),库存下限(int),库存上限(int)
不胜感激,另外追加高分
展开
 我来答
青蛙酱
2012-06-02 · 超过26用户采纳过TA的回答
知道答主
回答量:83
采纳率:0%
帮助的人:44.2万
展开全部
我帮你搞了修改的方法: 首先我把你的数据库表更改为 G_商品库存信息表(建议你建数据库尽量用英文)。然后在C#窗体里拉一个dataGridView控件、两个button控件。代码如下:
int intindex = 0; //记录行索引
SqlConnection conn; //声明一个SqlConnection变量
SqlDataAdapter adapter; //声明一个SqlDataAdapter变量
private void button1_Click(object sender, EventArgs e) //加载数据库
{
//实例化SqlConnection变量conn,连接数据库
conn = new SqlConnection("server=.;database=cpxsyglxt;uid=sa;pwd=");
//实例化SqlDataAdapter对象
SqlDataAdapter sda = new SqlDataAdapter("select * from G_商品库存信息表", conn);
DataSet ds = new DataSet(); //实例化DataSet对象
sda.Fill(ds); //使用SqlDataAdapter对象的Fill方法填充DataSet
dataGridView1.DataSource = ds.Tables[0];//设置dataGridView1控件的数据源
dataGridView1.RowHeadersVisible = false;//禁止显示行标题
button1.Enabled = false; //禁用按钮
dataGridView1.Columns[0].ReadOnly = true; //将控件设置为只读
}

private void button2_Click(object sender, EventArgs e) //修改
{
if (dbUpdate()) //判断dbUpdate方法返回的值是否为true
{
MessageBox.Show("修改成功!"); //弹出提示
}
button1_Click(sender, e); //重新加载
}
private DataTable dbconn(string strSql) //建立一个DataTable类型的方法
{
this.adapter = new SqlDataAdapter(strSql, conn); //实例化SqlDataAdapter对象
DataTable dtSelect = new DataTable(); //实例化DataTable对象
int rnt = this.adapter.Fill(dtSelect); //Fill方法填充DataTable对象
return dtSelect; //返回DataTable对象
}
private Boolean dbUpdate() //建立一个Boolean类型的方法dbUpdate
{
string strSql = "select * from G_商品库存信息表"; //声明SQL语句
DataTable dtUpdate = new DataTable(); //实例化DataTable
dtUpdate = this.dbconn(strSql); //调用dbconn方法
dtUpdate.Rows.Clear(); //调用Clear方法
DataTable dtShow = new DataTable(); //实例化DataTable
dtShow = (DataTable)this.dataGridView1.DataSource;
dtUpdate.ImportRow(dtShow.Rows[intindex]);//使用ImportRow方法复制dtShow中的值
try
{
SqlCommandBuilder CommandBuiler; //声明SqlCommandBuilder变量
CommandBuiler = new SqlCommandBuilder(this.adapter);
this.adapter.Update(dtUpdate); //调用Update方法更新数据
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString()); //出现异常弹出提示
return false;
}
dtUpdate.AcceptChanges(); //提交更改
return true;
}
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
intindex = e.RowIndex;//记录当前行号
}
----------------------------------------------------------------------------
// 还有删除的功能要我打么 ?
更多追问追答
追问
要,很急
追答
先把dataGridView1的SelectionMode属性更改为FullRowSelect。 在窗体中添加多一个button,用来实现删除的功能,双击控件输入代码:
private void button3_Click(object sender, EventArgs e) //删除
{
dataGridView1.AllowUserToDeleteRows = true; //允许删除行
foreach (DataGridViewRow r in dataGridView1.SelectedRows)
{
if (!r.IsNewRow)
{
dataGridView1.Rows.Remove(r);
button2_Click(sender, e);
}
}
}
yuan2944
2012-06-02 · TA获得超过193个赞
知道答主
回答量:382
采纳率:0%
帮助的人:185万
展开全部
代码不会 可以说下我的思路,
修改: dataGridView1单元格改成可编辑,CellEndEdit事件(不知道是不是这个..)里写上修改的代码,取值更新到数据库中

删除:可以弄个按钮,或者右键菜单,获取值删除就行
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lyj1562
2012-06-02 · TA获得超过113个赞
知道答主
回答量:121
采纳率:0%
帮助的人:77.3万
展开全部
在dataGridView1右上角可以按界面提示附加数据库,不用写代码
另外你说的 修改,删除代码。我想就是 保存,删除
用updata 更新 删除用delete 添加用Insert into (SQL 为例)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-06-02
展开全部
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace dealInfo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
dataGridView1.DataSource = GetMessage();
comboBox1.SelectedIndex = 0;
}

private DataTable GetMessage()
{
string P_Connection = @"server=MICROSOF-4A2656\HMILY;database=db_tometwo;uid=sa;pwd=duchuan234...";
string P_Command = string.Format("select * from 商品库存信息表");
SqlDataAdapter P_SqlDataAdapter = new SqlDataAdapter(P_Command, P_Connection);
DataTable P_dt = new DataTable();
P_SqlDataAdapter.Fill(P_dt);
return P_dt;
}

private void button1_Click(object sender, EventArgs e)
{
RemoveTable();
dataGridView1.DataSource = "";
}

private void RemoveTable()
{
string P_Connection = @"server=MICROSOF-4A2656\HMILY;database=db_tometwo;uid=sa;pwd=duchuan234...";
string P_Command = string.Format("drop table 商品库存信息表");
SqlDataAdapter P_SqlDataAdapter = new SqlDataAdapter(P_Command, P_Connection);
DataTable P_dt = new DataTable();
P_SqlDataAdapter.Fill(P_dt);
}

private void button2_Click(object sender, EventArgs e)
{
dataGridView1.DataSource = UpdateTable();
}

private DataTable UpdateTable()
{
string P_Connection = @"server=MICROSOF-4A2656\HMILY;database=db_tometwo;uid=sa;pwd=duchuan234...";
string P_Command = string.Format("update 商品库存信息表 set {0}={1} where 商品编号={2}", comboBox1.Text, textBox2.Text, textBox1.Text);
SqlDataAdapter P_SqlDataAdapter = new SqlDataAdapter(P_Command, P_Connection);
DataTable P_dt = new DataTable();
P_SqlDataAdapter.Fill(P_dt);
return P_dt;
}
}
}

我是在自己的数据库中创建的你的表,根据自己的需要酌情修改。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hyCJl8
2012-06-02 · 超过15用户采纳过TA的回答
知道答主
回答量:139
采纳率:0%
帮助的人:67.1万
展开全部
晕了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
glslian14cce7
2012-06-02 · TA获得超过1541个赞
知道小有建树答主
回答量:1389
采纳率:81%
帮助的人:546万
展开全部
呱呱的蛙 写的很好撒!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
baby新手菜鸟
2012-06-08 · 超过13用户采纳过TA的回答
知道答主
回答量:121
采纳率:0%
帮助的人:60.4万
展开全部
自己稍微看点书!!这个真的不难。《GridView 72般绝技》 下载个去 你要的里面都有
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式