4-2 ADO.NET-查询和检索数据8
原创
©著作权归作者所有:来自51CTO博客作者qianshao的原创作品,如需转载,请与作者联系,否则将追究法律责任
请看如下代码:
private void InitializeDataGridView()
{
try
{
//建立DataGridView控件
dataGridView1.Dock = DockStyle.Fill;
//自动生成DataGridView列
dataGridView1.AutoGenerateColumns = true;
//建立数据源
bindingSource1.DataSource = GetData("Select * From Products");
dataGridView1.DataSource = bindingSource1;
//自动调整可视化行
dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders;
//设置DataGridView控件的边界
dataGridView1.BorderStyle = BorderStyle.Fixed3D;
//当用户使用DataGridView控件时,它会成为可编辑模式
dataGridView1.EditMode = DataGridViewEditMode.EditOnEnter;
}
catch (SqlException e)
{
MessageBox.Show("To run this sample replace connection.ConnectionString"+ " with a valid connection string to a Northwind"+" database accessible to your system.", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
System.Threading.Thread.CurrentThread.Abort();
}
}
private static DataTable GetData(string sqlCommand)
{
string connectionString = "Integrated Security=SSPI;" + "Persist Security Info=False;" + "Initial Catalog=Northwind;Data Source=localhost";
SqlConnection northwindConnection = new SqlConnection(connectionString);
SqlCommand command = new SqlCommand(sqlCommand, northwindConnection);
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = command;
DataTable table = new DataTable();
table.Locale = System.Globalization.CultureInfo.InvariantCulture;
adapter.Fill(table);
return table;
}代码中dataGridView1.DataSource被设置为bindingSource1。
(2)DataGridView控件的创建
向窗体添加DataGridView控件过程如图4-55所示:
图4-55 向窗体添加DataGridView控件图
图4-55描述的是向窗体添加DataGridView控件过程。在工具箱中选择“数据”选项卡,找到DataGridView控件,点击后向窗体拖放,在设计窗口中出现DataGridView控件。默认的DataGridView控件的对象名为dataGridView1,右击dataGridView1控件选择“属性”,在属性窗口可以对对象dataGridView1的属性进行设置。主要是可以对DataSource、DataMember等属性进行配置。也可以在后续代码中进行设置。这样创建出来的对象dataGridView1就可以在后续程序中与数据绑定进行应用。当然,除了利用可视化界面创建DataGridView控件这种方法以外,还可以利用编程的方法。编程这种方法这里不过多叙述。
(3)为DataGridView控件绑定数据
可以与DataGridView控件进行绑定的数据源包括:DataSet;DataView;DataTable;数组;列表。进行数据绑定的方法有三种:
n方法一,直接用DataView对象或DataTable对象为DataGridView控件的DataSource属性进行赋值,见如下代码示例:
dbgPassenger.DataSource = objDataSet.Tables["Passenger"].DefaultView;
n方法二,用DataSet对象为DataGridView控件的DataSource属性进行赋值,用DataSet对象中的DataTable对象为DataGridView控件的DataMember属性赋值,见如下代码示例:
dbgBooks.DataSource = objDataSet;
dbgBooks.DataMember = "Titles";n方法三,调用DataGridView控件的SetDataBinding()方法,将DataSet对象及DataSet对象中的DataTable对象作为第一、第二参数传递给方法完成数据绑定,见如下代码示例:
dbgBooks.SetDataBinding(objDataSet, "Titles");
u实验步骤(1):
向一窗体拖拽一个DataGridView控件。
u实验步骤(2):
数据库的设计参见图4-56:
图4-56 数据库设计图
数据库为school1,仅用了两个表,mz是表示民族的表,student是表示学生的表。具体字段设计情况请参见图4-56。数据库环境是SQL Server 2005。
u实验步骤(3):
鼠标右击项目,在弹出的菜单中选择“添加”、“新建项”,在弹出的“添加新项”窗体中选择“代码文件”,名称改为“DataBase.cs”,点击“添加”按钮,完成添加。该文件同前所示,此处不再复述。
u实验步骤(4):
双击窗体,在load事件的处理方法里添加如下代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication1
{
public partial class Form13 : Form
{
public Form13()
{
InitializeComponent();
}
DataBase mydatabase = new DataBase();
private void Form13_Load(object sender, EventArgs e)
{
/*第一种方式:DataSet
DataSet ds = mydatabase.GetDataSet("select * from student");
dataGridView1.DataSource = ds.Tables[0];*/
//第二种方式:DataTable
DataTable dt = mydatabase.GetDataTable("select * from student");
dataGridView1.DataSource = dt;
}
}
}代码中有两种数据绑定方法可以被应用。其中第一种方法被注释掉了,如果想应用第一种方法,请去掉第一种方法的注释,并把第二种方法进行注释。程序运行后得到的效果如图4-57所示:
图4-57 DataGridView控件绑定数据执行效果图
前面提到,如果修改了DataGridView控件内的数据,或者添加、删除了一条数据记录。与其绑定的DataSet等数据源里相应的数据也会随着一起更新。但如何将这些数据更新发送到数据库以进行保存呢?如图4-58所示:
图4-58 DataGridView控件内的数据更新保存示意图
DataGridView控件内的数据一旦被更新,这个数据的回传和保存过程是通过DataAdapter.Update()方法来实现的。其工作过程原理如图4-59所示:
图4-59 DataGridView控件内的数据更新保存工作原理图
图4-59叙述了被更新的数据又被回传和保存的过程。前面章节曾经提到数据集DataSet里的数据被修改后,回传、保存工作是通过DataAdapter.Update()方法来实现的。这里的应用原理也是一样的。当DataGridView控件内的数据做了任何修改,与其绑定的数据集里的数据也同时被修改。所以也要通过调用DataAdapter.Update()方法来实现DataGridView控件内的被更新数据的回传和保存工作。DataAdapter.Update()方法又是通过相应的执行InsertCommand、UpdateCommand、DeleteCommand这几个命令对象,并通过SqlParameter对象集合传递修改后的行数据给数据库的。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
4-2 ADO.NET-查询和检索数据4
案例学习:SQLDataAdapter完成对数据库的删除修改和插入SqlCommandBuilder对象
职场 查询 休闲 ADO.NET 检索数据 -
4-2 ADO.NET-查询和检索数据2
DataTable、DataColumn和DataRow对象如何定义Datatable的主键DataTable的约束
职场 查询 休闲 ADO.NET 检索数据 -
4-2 ADO.NET-查询和检索数据3
DataView对象DataAdapter对象DataAdapter对象概述DataAdapter对象使用
职场 查询 休闲 ADO.NET 检索数据 -
4-2 ADO.NET-查询和检索数据11
DataGridView控件与存储过程存储过程在软件项目开发中的价值案例学习:DataGridView与存储过程
职场 查询 休闲 ADO.NET 检索数据 -
4-2 ADO.NET-查询和检索数据12
案例学习:DataGridView与存储过程,接上节代码
职场 查询 休闲 ADO.NET 检索数据11 -
4-2 ADO.NET-查询和检索数据13
接上节未完成代码本章小结ADO.NET 课 后 练 习
职场 查询 休闲 ADO.NET 检索数据 -
4-2 ADO.NET-查询和检索数据6
建立数据库类文件DataBase.cs,该类具有普适性完成上一节没有完成的程序代码
职场 查询 休闲 ADO.NET 检索数据 -
4-2 ADO.NET-查询和检索数据9
DataGridview控件创建的案例教学DataGridView的数据绑定技术;DataGridView的更新和删除技术
职场 查询 休闲 ADO.NET 检索数据 -
马哥4-2
权限管理:r:w:x: 三个用户:u:属主g:属组o:其他用户chown:改变文件属组(只有管理员可以使用此命令)#chown username file -R:修改目录及其内部文件的属主 --refe
管理员 file 信息 reference 用户登录 -
4-1 ADO.NET简介 2
ADO.NET 的优点及主要对象ADO.NET的结构
职场 休闲 ADO.NET