DateGrid在ADO.NET中的应用
来源:互联网 发布:传智python就业班 编辑:程序博客网 时间:2024/05/21 00:14
private void button2_Click(object sender, EventArgs e)//修改按钮事件
{
SqlCommand updateCmd = new SqlCommand("update studentInfo set Name=@par1 where No=@par2", con);
updateCmd.Parameters.Add("@par2", SqlDbType.Int);
updateCmd.Parameters.Add("@par1", SqlDbType.VarChar,10);
updateCmd.Parameters["@par2"].SourceColumn = "No";
updateCmd.Parameters["@par2"].SourceVersion = DataRowVersion.Original;
updateCmd.Parameters["@par1"].SourceColumn = "Name";
updateCmd.Parameters["@par1"].SourceVersion = DataRowVersion.Current;
da.UpdateCommand= updateCmd;
da.Update(ds, "studentInfo");
}
private void button1_Click(object sender, EventArgs e) //删除按钮事件
{
this.dataGridView1.Rows.RemoveAt(this.dataGridView1.SelectedRows[0].Index); //删除选中行
SqlCommand deleteCmd = new SqlCommand("delete from studentInfo where No=@par1",con);
deleteCmd.Parameters.Add("@par1",SqlDbType.Int);
deleteCmd.Parameters["@par1"].SourceColumn = "No";
deleteCmd.Parameters["@par1"].SourceVersion = DataRowVersion.Original;
da.DeleteCommand = deleteCmd;
da.Update(ds, "studentInfo");
} 原理基本相同,需要注意的是,当按删除按钮时,同时应该将控件里的该行数据删除。
前面几题的DataGridView的数据源DataSet都是非实例化的数据集,意思就是DataSet中存储的都是当程序运行时或运行后,与数据库发生交互时所得到的结果集,因此当程序尚未运行时,DataGridView控件中的数据是不可见的,而实例化的数据集通俗的理解就是不需要程序运行,该结果集便已存在,因此在界面搭建以及代码编写方面会方便很多,但是如果只是实现普通的功能,两种方式都可以完成,而实例化的数据集一个重要的作用就是构建导航。
示例2:实例化数据集实现导航
窗体:
说明,该窗体中控件中的字段来自Northwind数据库中的Customers(顾客)表及Orders(定单)表,两表中分别包含字段CustomerID(顾客编号),并且这两列有主外键约束,该窗体上方ListBox控件中显示Customers表中的字段CompanyName(公司名称),当选中某行时,下方的DataGridView控件中显示该公司的顾客编号及定单编号,方便查询。
实现步骤如下:
1.为该项目添加一个新建项,项目类型为数据集,建立完毕后选择菜单中的视图→服务器资源管理器,新建一个数据连接,指向SQL Server中的Northwind数据库,建立完毕后,将Customers表及Orders表拖入窗体,与Visual Studio 2003不同,Visual Studio 2005可以将两表间的引用关系一起带入程序,因此不必再次在两表间建立Relation。
2.搭建主窗体,加入DataGridView,ListBox,然后不要忘记最重要的一步,向窗口中拖入一个DataSet对象,在弹出的对话框中选择“类型化的数据集”,并选择刚才新加入的实例化数据集。
3.程序架构完毕,剩下就是敲代码了,主窗体代码如下:
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 WindowsApplication6
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e) //生成窗体事件
{
SqlConnection con = new SqlConnection("server=localhost;integrated security=SSPI;database=northwind");
SqlDataAdapter da = new SqlDataAdapter("select customerID,CompanyName from customers",con);
da.Fill(this.ds, "customers");
da = new SqlDataAdapter("select orderID,customerid from orders",con);
da.Fill(this.ds, "orders");
this.dataGridView1.DataSource = ds;
}
}
}
示例3:DataGridView中向单元格中添加控件。
DataGridView中的单元格实际就是些TextBox(文本框),而我们大多用文本框储存字符串,实际上TextBox也是控件,也可以容纳其他控件,比如ListBox(下拉列表框)等等,因此我们可以在DataGridView中的某列添加统一的控件
- DateGrid在ADO.NET中的应用
- vb.net 遍历Dategrid
- ADO.NET应用测试
- 在VB.NET中用ADO(不是ADO.NET)获取数据库中的所有非系统表名
- ADO.NET 中的命令
- ado.net中的parameters
- ADO.NET中的事务
- ADO.NET中的事务
- ADO.NET 中的 SqlDataAdapter
- ADO.NET中的对象
- 事务在 。NET中的应用
- 事务在.net中的应用
- AjaxPro在.NET中的应用
- AjaxPro在.NET中的应用
- log4net 在net中的应用
- AjaxPro在.NET中的应用
- AjaxPro在.NET中的应用
- Attribute在.NET中的应用
- 学习动态性能表第七篇--V$PROCESS
- 服务器设计:事务拆分和异步
- 用C#动态创建Access数据库
- C++多态技术的实现和反思
- 让你的网站快100倍! (2) web程序的流程和层次
- DateGrid在ADO.NET中的应用
- vivi系统引导程序的网络功能扩展
- 万丈高楼平地起——写在开博时
- 【新手学习】Excel操作指南 之一
- apache服务器配置全攻略
- 踏入C++中的雷区——C++内存管理详解
- 从内核模式启动进程
- WEBSITE
- petshop4.0项目概述与架构分析