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"; |
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 private void Form1_Load(object sender, EventArgs e) //生成窗体事件 } |

示例3:DataGridView中向单元格中添加控件。
DataGridView中的单元格实际就是些TextBox(文本框),而我们大多用文本框储存字符串,实际上TextBox也是控件,也可以容纳其他控件,比如ListBox(下拉列表框)等等,因此我们可以在DataGridView中的某列添加统一的控件