c# datagridview,怎么保存修改或新增数据到数据库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# datagridview,怎么保存修改或新增数据到数据库相关的知识,希望对你有一定的参考价值。

c# 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 winform1

public partial class Form3 : Form

public Form3()

InitializeComponent();

private SqlConnection cn;
private SqlCommandBuilder builder;
private SqlDataAdapter da;
private DataSet ds;
//查找事件,点击页面“查找”,
private void butSearch_Click(object sender, EventArgs e)

cn = new SqlConnection("server=.;database=test;uid=sa;pwd=123");
cn.Open();
ds = new DataSet();
SqlCommand cmd = new SqlCommand("select * from Test", cn);
da = new SqlDataAdapter(cmd);
//添加必要的列和主键信息以守成架构
da.MissingSchemaAction = MissingSchemaAction.AddWithKey;
builder = new SqlCommandBuilder(da);
da.Fill(ds, "Test");//表名一定不能少哦。。。
this.dataGridView1.DataSource = ds.Tables[0].DefaultView;

//更新事件
private void butUpdate_Click(object sender, EventArgs e)

int row = da.Update(ds, "Test");
MessageBox.Show("更新完成" + row + builder.GetUpdateCommand().CommandText);

//插入新记录事件
private void btnInsert_Click(object sender, EventArgs e)

DataRow findRow = ds.Tables[0].Rows.Find("1111");//获取包含指定主键值的行
if (findRow != null)

MessageBox.Show("已有这个记录");
return;

DataRow dr = this.ds.Tables[0].NewRow();
dr["StuId"] = this.texStuId.Text;
dr["StuName"] = this.texStuName.Text;
dr["StuScore "] = "100";
this.ds.Tables[0].Rows.Add(dr);
int row = da.Update(ds, "Test");
MessageBox.Show("添加完成" + row + builder.GetInsertCommand().CommandText);

//删除选中记录
private void btnDelete_Click(object sender, EventArgs e)

ds.Tables[0].Rows[this.dataGridView1.CurrentRow.Index].Delete();
int row = da.Update(ds, "Test");
MessageBox.Show("删除完成" + row + builder.GetDeleteCommand().CommandText);

//查询事件
private void btnSearch_Click(object sender, EventArgs e)

SqlCommand cmd = new SqlCommand("select * from Test where StuId=@StuId", cn);
cmd.Parameters.Add("@StuId", SqlDbType.Char, 8);
cmd.Parameters["@StuId"].Value = this.texId.Text;
da = new SqlDataAdapter(cmd);
ds.Clear();
da.Fill(ds, "Test");
this.dataGridView1.DataSource = ds.Tables[0].DefaultView;


参考技术A 在空间里面直接有添加修改、更新按钮的属性,你把他设置为true。让后绑定相应(修改、更新)的事件。

c# datagridview 取消第一列

默认第一列老有一个*和一个箭头,
要怎么取消他了

通过修改DataGridView.RowHeadersVisible属性取消第一列,把此属性设置为true,第一列不再显示。

如下图所示:

DataGridView.RowHeadersVisible 属性
获取或设置一个值,该值指示是否显示包含行标题的列。
属性值
Type: System.Boolean
如果显示包含行标题的列,为 true;否则为 false。默认值为 true。

备注
如果 RowHeadersVisible 属性是 false, ,一行其 Resizable 属性设置为 true 仍可调整大小在用户界面 (UI) 中通过单击鼠标光标要调整大小的行的下边框的任意位置。

示例

private void SetUpDataGridView()

    this.Controls.Add(dataGridView1);
    dataGridView1.ColumnCount = 5;
    DataGridViewCellStyle style = 
        dataGridView1.ColumnHeadersDefaultCellStyle;
    style.BackColor = Color.Navy;
    style.ForeColor = Color.White;
    style.Font = new Font(dataGridView1.Font, FontStyle.Bold);

    dataGridView1.EditMode = DataGridViewEditMode.EditOnEnter;
    dataGridView1.Name = "dataGridView1";
    dataGridView1.Location = new Point(8, 8);
    dataGridView1.Size = new Size(500, 300);
    dataGridView1.AutoSizeRowsMode = 
        DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders;
    dataGridView1.ColumnHeadersBorderStyle = 
        DataGridViewHeaderBorderStyle.Raised;
    dataGridView1.CellBorderStyle = DataGridViewCellBorderStyle.Single;
    dataGridView1.GridColor = SystemColors.ActiveBorder;
    dataGridView1.RowHeadersVisible = false;

    dataGridView1.Columns[0].Name = "Release Date";
    dataGridView1.Columns[1].Name = "Track";
    dataGridView1.Columns[1].DefaultCellStyle.Alignment = 
        DataGridViewContentAlignment.MiddleCenter;
    dataGridView1.Columns[2].Name = "Title";
    dataGridView1.Columns[3].Name = "Artist";
    dataGridView1.Columns[4].Name = "Album";

    // Make the font italic for row four.
    dataGridView1.Columns[4].DefaultCellStyle.Font = new Font(DataGridView.DefaultFont, FontStyle.Italic);

    dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
    dataGridView1.MultiSelect = false;

    dataGridView1.BackgroundColor = Color.Honeydew;

    dataGridView1.Dock = DockStyle.Fill;

    dataGridView1.CellFormatting += new DataGridViewCellFormattingEventHandler(dataGridView1_CellFormatting);
    dataGridView1.CellParsing += new DataGridViewCellParsingEventHandler(dataGridView1_CellParsing);
    addNewRowButton.Click += new EventHandler(addNewRowButton_Click);
    deleteRowButton.Click += new EventHandler(deleteRowButton_Click);
    ledgerStyleButton.Click += new EventHandler(ledgerStyleButton_Click);
    dataGridView1.CellValidating += new DataGridViewCellValidatingEventHandler(dataGridView1_CellValidating);

参考技术A 楼上的朋友没有理解好楼主的题目的意思!

你好,我可以帮你解决这个问题。
其实很简单!
在datagridview属性列表里面有个RowHeadersVisible这样的属性,默认是true的,你设置成false就ok啦。。
RowHeadersVisible属性的意思就是要不要显示头列~也就是第一列!
ok解决了!要采纳啊。本回答被提问者和网友采纳
参考技术B 设置第一列的visible属性为false

以上是关于c# datagridview,怎么保存修改或新增数据到数据库的主要内容,如果未能解决你的问题,请参考以下文章

急!在datagridview中修改或增加数据,单击按钮能将写入的数据保存到数据库里?求C#源代码,谢谢交个朋友

在C#中,dataGridView怎么样指定显示特定的列

c#中 datagridview单击选中一行数据,点修改按钮,跳转到另外一个窗体并显示数据,修改保存

winform中dataGridView上怎么修改、保存数据啊,急用啊?

如何实现c# winform DataGridView添加一行,添加数据后,保存到数据库?

C#中datagridview控件 如何进行删除修改添加数据并保存到数据库中