datagridview更新数据库
1. 怎么用DataGridView直接更新ACCESS数据库里的数据
以往的回答都是说在默认值里设置,这种方法在还没有输入记录的时候确实是一个好方法,但是若已经输入了记录(特别是已输入了不少的记录)的话,此方法就行不通了,在此我有一个方法可供你们参考一下(特别是对输入了不少的记录更会觉得方便):1.在“查询”中设计一个“更新查询”。在查询设计器中,把要修改的表显示出来,在下面的字段栏中选择要修改或添加的字段名。在“更新到”栏中输入1,并保存查询。
2. 执行查询,在资料表中的相应栏位即可得到所需要的值。
此方法即简便又实用(特别是对已输入较多的记录而言),并且执行一次后即可将该查询删除。
2. 如何将datagridview中的数据更新到其数据源的数据库中
这个我做的课程设计有用到,是断开连接环境到sql数据。
private void 商店一_商品_Load(object sender, EventArgs e)
{
sqlConn = new SqlConnection("Data Source=ASUS-PC\\SQLEXPRESS;Initial Catalog=SUPERMARKET;Integrated Security=True;");
/SqlConnection连接到本地服务器ASUS-PC,数据库SUPERMARKET,使用windows身份验证
sqlDa = new SqlDataAdapter("SELECT * FROM dbo.商店一_商品", sqlConn);
//Sql适配器以从表dbo.商店一_商品选择所有列作为命令,绑定到SqlConnection
sqlDs = new DataSet();//为数据集分配内存
sqlDa.Fill(sqlDs, "dbo.商店一_商品");//适配器填充到数据集中的表"dbo.商店一_商品"
dataGridView1.DataSource = sqlDs.Tables["dbo.商店一_商品"];
//dataGridView1以数据集中的表"dbo.商店一_商品"作为其数据源
SqlCommandBuilder sqlCmdBuilder = new SqlCommandBuilder(sqlDa);
//然后用SqlCommandBuilder自动为SqlDataAdapter生成Insert、Update、Delete命令
}
点button1批量更新到数据库:
private void button1_Click_1(object sender, EventArgs e)
{
if (sqlDs.HasChanges())//如果数据集因我们对datagridview的操作发生改变
{
try//捕获异常
{
sqlDa.Update(sqlDs.Tables["dbo.商店一_商品"]);//以数据集的"dbo.商店一_商品"表更新数据库
sqlDs.Tables["dbo.商店一_商品"].AcceptChanges();//接受对数据的修改
MessageBox.Show("更新成功!", "操作结果", MessageBoxButtons.OK, MessageBoxIcon.Information);//弹出提示更新成功
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "更新失败!", MessageBoxButtons.OK, MessageBoxIcon.Error);
//出现异常提示更新失败
}
}
}
button2删除当前行:
private void button2_Click_1(object sender, EventArgs e)
{ //删除首先要定位到当前选中的记录
int delRowIndex = dataGridView1.CurrentRow.Index;
this.dataGridView1.Rows.RemoveAt(delRowIndex);
//然后调用button1更新数据库的方法
button1.PerformClick();
}
3. 如何使用DataGridView更新数据库
用手工输入代码
OleDbDataAdapter adapter = new OleDbDataAdapter();
adapter.SelectCommand = new OleDbCommand(queryString, connection);
OleDbCommandBuilder cb = new OleDbCommandBuilder(adapter);
connection.Open();
adapter.Fill(dataSet, tableName);
adapter.Update(dataSet, tableName);//有了OleDbCommandBuilder,此行才有效
connection.Close();
就可以将DataGridView表格上的输入更新至数据库。
4. c#:datagridview显示数据了,怎么把它的变动更新到数据库
代码写在类里面,要写完整了才能灵活应用,你不要每次操作都去打开一次数据库链接,那样会造成死锁。
publicDataSetds=null;
publicSqlDataAdaptersda=null;
publicstaticSqlConnectionconn=null;
publicvoidOpenLink()
{
conn=newSqlConnection();
conn.ConnectionString="Server=192.168.1.2;UID=sa;PWD=**112*;DataBase=454545";
try
{
conn.Open();
}
catch
{
MessageBox.Show("连接数据库失败!");
}
}
publicvoidsaveTable()
{
if(ds!=null)
{
sda.Update(ds.Tables[0]);
MessageBox.Show("操作已成功!","保存数据",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
}
publicvoidlink(Stringsql)
{
if(conn!=null)
{
ds=newDataSet();
sda=newSqlDataAdapter();
sda.SelectCommand=newSqlCommand(sql,conn);
SqlCommandBuilderbuilder=newSqlCommandBuilder(sda);
sda.Fill(ds);
}
}
publicvoidfilldata(DataSetds,BindingNavigatorb,DataGridViewd)
{
BindingSourcebs=newBindingSource();
bs.DataSource=ds.Tables[0];
b.BindingSource=bs;
d.DataSource=bs;
}
在你整个项目启动的时候初始化数据就OpenLink(),filldata就是填充dataGridView绑定导航,link()直接填写SQL语句就好了,在link的基础上saveTable()
5. 如何使用datagridview修改数据库
实现思路:
实现数据库和datagridview数据连接
实现修改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.Collections;
using System.Data.SqlClient;
namespace Quanxian
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private int job_id;
private string job_desc;
private int min_lvl;
private int max_lvl;
private void Form2_Load(object sender, EventArgs e)
{
binddatagridview();
}
/// <summary>
/// 绑定Datagridview的方法
/// </summary>
private void binddatagridview()
{
SqlConnection sqlcon = new SqlConnection("server=.;uid=sa;pwd=;database=pubs");
SqlDataAdapter sqldap = new SqlDataAdapter("select * from jobs", sqlcon);
DataSet ds = new DataSet();
sqldap.Fill(ds);
this.dataGridView1.DataSource = ds.Tables[0];
}
/// <summary>
/// 编辑单元格后触发
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
if (dataGridView1.Rows.Count > 0)
{
job_id = int.Parse (this.dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString());
job_desc = this.dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString();
min_lvl = int.Parse(this.dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString());
max_lvl = int.Parse(this.dataGridView1.Rows[e.RowIndex].Cells[3].Value.ToString());
}
}
/// <summary>
/// 修改
/// </summary>
private void button1_Click(object sender, EventArgs e)
{
SqlConnection sqlcon = new SqlConnection("server=.;uid=sa;pwd=;database=pubs");
string str = "update jobs set job_desc='" + job_desc + "',min_lvl=" + min_lvl + ",max_lvl=" + max_lvl + " where job_id=" + job_id + "";
SqlCommand sqlcom = new SqlCommand(str,sqlcon);
try
{
sqlcon.Open();
if (sqlcom.ExecuteNonQuery() > 0)
MessageBox.Show("保存成功");
else
MessageBox.Show("保存失败!");
}
catch
{
//异常
}
finally
{ sqlcon.Close();}
}
/// <summary>
/// 刷新
/// </summary>
private void button2_Click(object sender, EventArgs e)
{
binddatagridview();
}
}
}