c#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();
}
}
}
SqlCommandBuilder scb=new SqlCommandBuilder(da); <da为SqlDataAdapter的实例对象>
da.Update(ds,"info");<ds为DataSet的实例对象,info为DataSet填充datagridview时da.File(ds,"info")中的info>
能给个事例代码吗?谢谢了
SqlDataAdapter da;
DataSet ds = new DataSet();
private void button1_Click(object sender, EventArgs e)
{
ds.Clear();
string conne = "Data Source=.;AttachDbFilename=D:\\web\\MySchool.mdf;Integrated Security=True";
SqlConnection conn = new SqlConnection(conne);
string sql = "select studentid,studentname,sex,phone,address,jobwanted from student where loginid like '%";
if (textBox1.Text == "")
{
MessageBox.Show("请输入您要查找的用户ID!");
}
else
{
sql += textBox1.Text + "%'";
}
try
{
conn.Open();
da = new SqlDataAdapter(sql, conn);
da.Fill(ds, "studentinfo");
if (ds.Tables[0].Rows.Count == 0)
{
MessageBox.Show("没有您要查询的学生信息!");
}
else
{
dataGridView1.DataSource = ds.Tables[0];
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
conn.Close();
}
}
private void button3_Click(object sender, EventArgs e)
{
button1_Click(sender, e);
}
private void 修改btn_Click(object sender, EventArgs e)
{
SqlCommandBuilder sb = new SqlCommandBuilder(da);
da.Update(ds,"studentinfo");
MessageBox.Show("修改成功!");
}
广告 您可能关注的内容 |