dataGridView更新数据库

dataGridView更新数据库,第1张

先建一个公共类文件

public class Globals

{

public static SqlConnection con

public static SqlCommand cmd = null

public static SqlDataAdapter sda = null

static Globals()

{

con = new SqlConnection()

con.ConnectionString = "data source=.initial catalog=MyExaminationManagementuser id=sapassword=123"//这里data source指数据库地址。“.”表示本机。initial catalog=MyExaminationManagement指要数据库名称。user id=sapassword=123这就是你SQL Server2005的用户名和密码,具体根据你安装SQL Server2005的设定为准。

cmd = new SqlCommand()

cmd.Connection = con

sda = new SqlDataAdapter()

sda.SelectCommand = cmd

}

public static int Insert(string sql)//插入

{

cmd.CommandText = sql

Globals.con.Open()

int r = Globals.cmd.ExecuteNonQuery()

Globals.con.Close()

return r

}

public static int Delete(string sql)//删除

{

cmd.CommandText = sql

Globals.con.Open()

int r = Globals.cmd.ExecuteNonQuery()

Globals.con.Close()

return r

}

public static int Update(string sql)//修改

{

cmd.CommandText = sql

Globals.con.Open()

int r = Globals.cmd.ExecuteNonQuery()

Globals.con.Close()

return r

}

public static DataTable Find(string sql)//查询

{

cmd.CommandText = sql

DataSet ds = new DataSet()

sda.Fill(ds, "Data")

DataTable dt = ds.Tables["Data"]

ds.Tables.RemoveAt(0)

string s = dt.Columns.Count.ToString()

return dt

}

}

在主文件页面添加添加、修改、删除button

编写点击代码大致如下:

private void btnCoAdd_Click(object sender, EventArgs e)//添加

{

int 添加 = Globals.Insert("insert into Course(CoID,CoName)values" + "(" + "'" + this.tbxCourseID.Text.ToString().Trim() + "'" + "," + "'" + this.tbxCourse.Text.ToString().Trim() + "'" + ")")

if (添加 >0)

{

MessageBox.Show("科目添加成功!", "科目添加成功",MessageBoxButtons.OK,MessageBoxIcon.Information)

this.panelCo_AUD.Visible = false

this.dgvCourse_refresh()

return

}

}

private void btnCoAlter_Click(object sender, EventArgs e)//修改

{

int 科目修改 = Globals.Update("update Course set CoName='" + this.tbxCourse.Text.Trim() + "'where CoID='" + this.tbxCourseID.Text.Trim() + "'")

if (科目修改 >= 1)

{

MessageBox.Show("科目修改成功!", "科目更新成功",MessageBoxButtons.OK,MessageBoxIcon.Information)

this.panelCo_AUD.Visible = false

this.dgvCourse_refresh()

return

}

}

private void btnCoDel_Click(object sender, EventArgs e)//删除

{

int 删除 = Globals.Delete("DELETE Course WHERE CoID='" + this.tbxCourseID.Text.Trim() + "'")

if (删除 >= 1)

{

MessageBox.Show("科目删除成功!", "科目删除成功",MessageBoxButtons.OK,MessageBoxIcon.Information)

this.panelCo_AUD.Visible = false

this.dgvCourse_refresh()

return

}

}

再编写datagridview的调用方法:

private void dgvCourse_refresh()

{

//this.dgvCourse.DataSource = null

DataTable 科目表

//科目表.Clear()

科目表 = Globals.DGV_Assign("select distinct CoID 科目编号,CoName 科目名称 from Course order by CoID")

this.dgvCourse.DataSource = 科目表.DefaultView

dgvCourse.Columns[0].Width = 40

dgvCourse.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells

}

这是主要代码具体功能看你自己的要求和创造力了。

用一个GridView在后台来绑定

首先写数据库连接字符串!sql2005(server=.datbase=数据库;uid=sapwd=密码)

然后用视图来做查询!如果是多表把查询条件放到最后!接着把查询出来的结果放到datatable里!最后做数据绑定!如下:

SqlConnection con = new SqlConnection("server=.database=hoteluid=sapwd=123456")

con.Open()

string sql = "sql语句"

SqlCommand cmd = new SqlCommand(sql, con)

SqlDataReader dr = cmd.ExecuteReader()

DataTable dt = new DataTable()

dt.Load(dr)

(dataGridView这个是id值)GridView1.DataSourceID = null

GridView1.DataSource = dt

GridView1.DataBind()

热门频道

首页

博客

研修院

VIP

APP

问答

下载

社区

推荐频道

活动

招聘

专题

打开CSDN APP

Copyright © 1999-2020, CSDN.NET, All Rights Reserved

打开APP

斯内科

关注

DataGridView使用数据源绑定,每隔几秒钟就刷新数据 原创

2021-11-07 23:02:55

斯内科

码龄11年

关注

我们测试使用内存数据表来绑定DataGridView,每隔5秒钟就刷新一次数据绑定。

新建winforms应用程序BIndDataDemo,将默认的Form1重命名为FormBindDataGridDemo。

窗体FormBindDataGridDemo设计如图:

窗体FormBindDataGridDemo主要程序如下

(忽略设计器自动生成的代码):

using System

using System.Collections.Generic

using System.ComponentModel

using System.Data

using System.Drawing

using System.Linq

using System.Text

using System.Threading

using System.Threading.Tasks

using System.Windows.Forms

namespace BIndDataDemo

{

public partial class FormBindDataGridDemo : Form

{

/// <summary>

/// 重新绑定数据事件

/// </summary>

public event Action<DataTable>EventRebindData

/// <summary>

/// 线程是否已经运行

/// </summary>

bool isRun = false

public FormBindDataGridDemo()

{

InitializeComponent()

dgvData.AutoGenerateColumns = false

dgvcId.DataPropertyName = "Id"

dgvcEnglishName.DataPropertyName = "EnglishName"

dgvcChineseName.DataPropertyName = "ChineseName"

dgvcDBNum.DataPropertyName = "DBNum"

dgvcAddress.DataPropertyName = "Address"

dgvcDataType.DataPropertyName = "DataType"

dgvcByteCount.DataPropertyName = "ByteCount"

dgvcValue.DataPropertyName = "Value"

}

private void FormBindDataGridDemo_Load(object sender, EventArgs e)

{

EventRebindData += FormBindDataGridDemo_EventRebindData

EventRebindData.Invoke(GenerateDataTable(2021))

}

private void FormBindDataGridDemo_EventRebindData(DataTable dt)

{

this.BeginInvoke(new Action(() =>

{

dgvData.DataSource = dt

dgvData.FirstDisplayedScrollingRowIndex = dgvData.Rows.Count - 1

}))

}

/// <summary>

/// 生成数据表

/// </summary>

/// <param name="count"></param>

/// <returns></returns>

private DataTable GenerateDataTable(int count)

{

DataTable dataTable = new DataTable("DataDemo")

dataTable.Columns.Add("Id", typeof(int))

dataTable.Columns.Add("EnglishName", typeof(string))

dataTable.Columns.Add("ChineseName", typeof(string))

dataTable.Columns.Add("DBNum", typeof(string))

dataTable.Columns.Add("Address", typeof(int))

dataTable.Columns.Add("DataType", typeof(string))

dataTable.Columns.Add("ByteCount", typeof(int))

dataTable.Columns.Add("Value", typeof(string))

dataTable.Rows.Add(1, "DataItem1", "数据项1", "DB200", 0, "Int", 2, "32767")

dataTable.Rows.Add(2, "DataItem2", "数据项2", "DB200", 2, "Real", 4, "-723.425")

dataTable.Rows.Add(3, "Barcode", "条码", "DB200", 6, "String", 12, "ABCD")

double coefficient = (count % 2 == 0 ? 0.1 : 0.2)//系数

for (int i = 0i <counti++)

{

dataTable.Rows.Add(i + 4, $"DataItem{i + 4}", $"数据项{i + 4}", "DB200", 18 + 4 * i, "Real", 4, (i + 4) * 2 + coefficient * i)

}

return dataTable

}

private void btnWrite_Click(object sender, EventArgs e)

{

int id = Convert.ToInt32(numId.Value)

if (id <1 || id >dgvData.Rows.Count)

{

MessageBox.Show($"指定的编号【{id}】不在范围内", "错误")

return

}

dgvData.Rows[id - 1].Cells["dgvcValue"].Value = txtValue.Text

}

/// <summary>

/// 重新绑定按钮事件

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

private void btnRebind_Click(object sender, EventArgs e)

{

btnRebind.Enabled = false

isRun = true

Random random = new Random(Guid.NewGuid().GetHashCode())

Task task = Task.Factory.StartNew(() =>

{

//每隔一秒钟重新绑定

while (isRun)

{

EventRebindData.Invoke(GenerateDataTable(random.Next(1000, 8000)))

Thread.Sleep(5000)

}

})

Task.WaitAll(new Task[] { task }, 8000)

}

/// <summary>

/// 停止绑定事件

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

private void btnStop_Click(object sender, EventArgs e)

{

btnRebind.Enabled = true

isRun = false

}

private void FormBindDataGridDemo_FormClosing(object sender, FormClosingEventArgs e)

{

//解除事件绑定

EventRebindData -= FormBindDataGridDemo_EventRebindData

isRun = false

}

}

}

程序运行如图:

打开CSDN,阅读体验更佳

DataGridView刷新数据_「已注销」的博客

在DataGridView上 *** 作数据之后,无论是增删改都是对数据库进行了 *** 作,而DataGridView这个控件在 *** 作之后是不会变化的,需要重新的去数据库里读取一下数据才行,可以理解为之刷新 DataTable dt = (DataTable)dataGridView1.DataSourcedt....

C# DataGridView 刷新_originaldream的博客_c# datagrid...

c# 控件 dataGridView 使用时,都会遇到加载数据需要重新刷新。网上有不少答案,大致做一下总结。1)跟我以前一样笨,重新加载一遍数据,绑定一遍,使用datasource = datatable2)使用 datablinding 直接绑定数据3)使用updata() 刷新函数

C# datagridview 与数据源绑定后对数据的,增加,删除,插入,更新

C# datagridview 与数据源绑定后对数据的,增加,删除,插入,更新C# datagridview 与数据源绑定后对数据的,增加,删除,插入,更新

datagridview 定时刷新

private void Eating2_Load_2(object sender, EventArgs e) { string bookid = Users.StaticBook// TODO: 这行代码将数据加载到表“dataSet_Notice.TB_NOTICE”中。您可以根据需要移动或移除它。 thi...

继续访问

winform datagridview实时更新显示查询结果_全民医保的博客_d...

datagridview是winform编程上很常见也很常用的控件之一,下面就根据一个小需求来展示一下datagridview是怎么实时刷新显示查询结果的。 目标界面 界面图片 说明:这个界面并不是VS系统的界面,是用到了第三方的控件实现的 ...

关于datagridView的刷新_Yanzzz的博客_datagridview刷新...

在重新读取SQl 数据库后,DataGridView中所有结果会显示两次。 但这并不是DataGridView本身的问题,而是由DataSet没有清空导致的。 所以解决办法就是ds.tables.clear()...怪不得dataGridView没有clear...

关于c# winform 中 使用多线程实现后台定时刷新 datagridview 数据

背景 本人c#新手,最近公司要求做的一个程序,需要利用后台定时查询数据绑定到datagridview上,要求程序不能出现假死,给人友好的体验,于是想到利用创建另一个线程用于查询数据然后再把数据显示在datagridview上。程序完成的时候,在本机上代码调试也没出问题,很完美,但是到了实际的运用的时候,datagridview的界面出了问题,没有数据并且显示一个大红叉,并且还报错。之前还以为是电...

继续访问

DataGridView刷新数据

在DataGridView上 *** 作数据之后,无论是增删改都是对数据库进行了 *** 作,而DataGridView这个控件在 *** 作之后是不会变化的,需要重新的去数据库里读取一下数据才行,可以理解为之刷新 DataTable dt = (DataTable)dataGridView1.DataSourcedt.Rows.Clear()dataGridView1.Da...

继续访问

如何用timer实现DataGridView实时更新数据。

private void timer1_Tick(object sender, EventArgs e) { dataGridView1.DataSource = bll.GetModelList().Tables[0]dataGridView1.Refresh()}...

继续访问

DataGridView数据刷新

自己遇到的问题,解决了,记录下,方便以后查找。 基本情况:前一段做一个Winform的项目,是用来验货的,多条产品数据,有一个应扫数量,和一个实扫数量,扫描到哪个商品就把列表中对应商品的数量加数量,如果商品实扫数量达到应扫数量,就移动到已扫完成列表。商品验货数量变化后,列表要精细排序,列表行的背景色要区分已验货的和未验货的。 如下图: 遇到问题:最开始用的List<>作为Da...

继续访问

热门推荐 如何实现DataGridView刷新数据?

近期做项目,遇到一个问题,

继续访问

mysql更新datagridview_如何在Visual Basic(.NET)中绑定到MySQL数据库的datagridview上实现自动刷新...

正如jmcilhinney建议的那样,datagridviews被绑定到DataTables(或者有时候是我自己的列表),所以他说的听起来应该有效 . 显然,因为它没有提出我的建议:你说"fields"你可以更新,添加,删除等所选行,对吗?听起来你正在做一些新行 . 正如您在数据绑定网格视图中所做的那样,我怀疑您实际上是以典型方式添加它们,而是采用某种程序化替代方案 .因此,尝试实现您的解决方案,...

继续访问

如何实现DataGridView实时更新数据

贴过来做技术积累,原文出处:http://dszhang.blog.163.com/blog/static/12281257420118541413584/ 最近一直在研究调度 涉及到用调度实时给客户发送短信的功能 其中就有用到实时更新的显示发送状态的 当然 今天不是以QUARTE为主 主要控件有 datagridview checkbox picturebox trackBar1

继续访问

winform datagridview实时更新显示查询结果

datagridview是winform编程上很常见也很常用的控件之一,下面就根据一个小需求来展示一下datagridview是怎么实时刷新显示查询结果的。 目标界面 界面图片 说明:这个界面并不是VS系统的界面,是用到了第三方的控件实现的 实现过程 这个界面用到了Groupbox、label、button和datagri...

继续访问

DataGridView控件强制刷新

C# 多线程刷新DataGridView控件 调用Refresh的方法最好放在控件对应的.cs文件里,不然可能导致调用Refresh后没刷新界面。

继续访问

DataGridView数据源更换或刷新时,表格内容不显示或者不变

之前遇到这样的问题,查看历史数据的时候绑定了datatable1。 之后改为实时数据显示,则将datatable1的数据情况,重新存入,但是DataGridView就不自动更新。 解决方案如下: _totalTable = bll.GetSingelInfo(InitSystemStaticInfo.CurProject?.TableName)//重新获取数据 dataGridView1.Dat...

继续访问

最新发布 绑定数据的自动更新(datagridview 数据绑定)

INotifyPropertyChanged 接口:向客户端发出某一属性值已更改的通知。 NotifyPropertyChanged 接口用于向客户端(通常是执行绑定的客户端)发出某一属性值已更改的通知。 在WPF中进行数据绑定的时候常常会用到INotifyPropertyChanged接口来进行实现,下面来看一个INotifyPropertyChanged的案例。 下面定义一个Person类: 上面定义的这个Person类中,对Name和Age属性进行了监听,但是没有对Hobby进行监听。通知后 绑定数据

继续访问

c#提高datagridview刷新速度(两种方法计时对比)

datagridview刷新速度提升,10000行数据刷新提速效果明显

继续访问

记录一次C# Linq to Sql实现DataGridView实时显示与刷新TCP/UDP服务端在线人数

实现串口的透传(简单的TCP/UDP透传),并且显示TCP/UDP实时刷新和显示连接情况或者监听情况。讲述成功实现的方式和雷点。

继续访问

DataGridView数据绑定问题

问题:给DataGridView绑定数据时如果已经在可视化界面绑定过一次数据,那么可能会遇到数据绑定失败的问题。 如果我们需要在代码处绑定数据,那么就需要先把可视化的数据绑定为无。 其次,重新给DataGridView绑定数据时需要用旧表引用新表 table0 = table1参考重新给datagridview设置数据源谨记的一件事 ...

继续访问

C# DataTable的DataColumn和DataRow数据绑定,DataGridView Datasource数据绑定DataTable,List

1. datasource数据绑定 根据列名的DataPropertyName进行数据绑定,HeaderText数据显示 2. datasource数据绑定

继续访问

datagridview自动刷新

asp.net

后端

写评论

评论

7

点赞

分享


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6777786.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存