C#学习4——Win Form

目录

第5章 实现Windows程序的数据绑定

第6章 数据筛选和排序


显示模式窗体:ShowDialog() 方法
显示非模式窗体:Show()方法

/// 一个按钮的点击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void click(object sender, EventArgs e)
{
    Form2 form = new Form2();

    /**
     * form的name属性值是“Form2”
     * ShowDialog:显示模式窗体;只能弹出一次窗体(Form2),不能点击除当前窗体以外的其他窗体。
     * Show:显示非模式窗体;可以弹出无数的窗体(Form2),可以点击除当前窗体以外的其他窗体
     **/
    // form.Show();
    form.ShowDialog();
}

第5章 实现Windows程序的数据绑定

5.1DataSet对象





5.2DataAdapter对象

属性

说明

DataSource

获取或设置数据源

DisplayMember

获取或设置要为此ListControl显示的属性

ValueMember

获取或设置一个属性,该属性将用作ListControl中项的实际值



/// <summary>
/// 当页面加载窗体的时候执行方法,
/// 有一个comboBox的name值是“comboBox1”,给他绑定个数据源
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void load(object sender, EventArgs e)
{
	String connStr = "Data Source=.;Initial Catalog=ldgxdb;Persist Security Info=True;User ID=sa;Password=root";

	//创建SqlCommand
	SqlConnection connection = null;

	DataSet ds = null;
	try
	{
		connection = new SqlConnection(connStr);

		//打开Connection
		connection.Open();

		String sql = "select * from tbl_admin";
		//创建SqlDataAdapter
		SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);

		//DataSet
		ds = new DataSet();
		adapter.Fill(ds, "tbl_admin");//DataAdapter对象. Fill(数据集对象, "数据表名称");
	}
	catch (Exception ee)
	{
		Console.WriteLine("发生错误:" + ee.Message);
	}
	finally
	{
		if (connection != null)
		{
			connection.Close();
		}
	}
	//添加数据“全部”
	DataRow row = ds.Tables["tbl_admin"].NewRow();
	row[0] = -1;
	row[1] = "全部";
	ds.Tables["tbl_admin"].Rows.InsertAt(row, 0);

	//绑定数据
	this.comboBox1.DataSource = ds.Tables["tbl_admin"];//comboBox的数据源
	this.comboBox1.ValueMember = "id";//comboBox的每个项的id值
	this.comboBox1.DisplayMember = "name";//comboBox的每个项的显示群
}





5.3数据绑定





5.4DataGridView控件

DataGridView控件的主要属性

属性

说明

AutoGenerateColumns

设置DataGridView是否自动创建列

Columns

包含的列的集合

DataSource

DataGridView的数据源

ReadOnly

是否可以编辑单元格

 

DataGridView控制各列的主要属性

属性

说明

ColumnType

列的类型

DataPropertyName

绑定的数据列的名称

HeaderText

列标题文本

Visible

指定列是否可见

Frozen

指定水平滚动DataGridView时,列是否移动

ReadOnly

指定单元格是否为可读

 

界面编辑

1.给DataGridView绑定一个数据源就可以了

代码编辑

/// <summary>
/// 当页面加载窗体的时候执行此方法,给DataGridView绑定数据源
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form1_Load(object sender, EventArgs e)
{
    String connStr = "Data Source=.;Initial Catalog=ldgxdb;User ID=sa;Password=root";
    String sql = "select * from tbl_admin";
    SqlConnection connection = null;
    try
    {
	//1.创建SqlConnection
	connection = new SqlConnection(connStr);
	
	//2.SqlConnection.open()
	connection.Open();//打开连接

	//3.创建SqlDataAdapter
	SqlDataAdapter adapter = new SqlDataAdapter(sql,connection);

	//4.创建DataSet
	DataSet ds = new DataSet();

	//5.填充DataSet
	adapter.Fill(ds,"tbl_admin");

	//6.DataGridView的属性“name”是“dataGridView1”,绑定数据源
	dataGridView1.DataSource = ds.Tables["tbl_admin"];

    }
    catch (Exception ee)
    {
	Console.WriteLine("发生错误:" + ee.Message);
    }
    finally
    {
	if (connection.State == ConnectionState.Open || connection.State == ConnectionState.Broken)
	{
	    connection.Close();//关闭连接
	}

    }

}





第6章数据筛选和排序

6.1TreeView控件

 TreeView控件的属性和事件

属性

说明

Nodes

TreeView控件中的所有根节点

ImageList

存放TreeView控件中节点的图像

ImageIndex

节点默认的图像索引

SelectedImageIndex

节点选中的图像的索引

SelectedNode

当前选中的父节点

属性

说明

AfterSelect

节点选中后发生

 

 

TreeNode的常用属性

属性

说明

Text

节点上的文字

ImageIndex

节点默认的图像索引,如果不设置,将保持与TreeView控件的设置相同

SelectImageIndex

节点选中时图像的索引,如果不设置,将保持与TreeView控件的设置相同

Level

节点在树中的深度,从0开始

Nodes

当前节点包含的子节点的集合

ParentNode

当前节点的父节点





6.2DataView

DataSet,DataTable,DataView三者之间的关系

一个DataSet中可以有多个DataTable,一个DataTable可以动态生成多个DataView


属性

说明

Table

用来获取或设置源DataTable

Sort

获取或设置DataView的一个或多个排序列以及排序顺序

RowFilter

获取或设置用于筛选在DataView中查看哪些行的表达式

Count

在应用RowFilter后,获取DataView中的行数

全局定义参数

 SqlDataAdapter adapter;
 DataSet ds = null;


从数据库中取出DataSet


 /// <summary>
        /// 从数据库查询得到DataSet
        /// </summary>
        /// <returns></returns>
        private DataSet getDataSet()
        {
            String connStr = "Data Source=.;Initial Catalog=ldgxdb;User ID=sa;Password=root";
            String sql = "select * from tbl_admin";
            SqlConnection connection = null;
            DataSet ds = null;
            try
            {
                //1.创建SqlConnection  
                connection = new SqlConnection(connStr);

                //2.SqlConnection.open()  
                connection.Open();//打开连接  

                //3.创建SqlDataAdapter  
                SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);

                //4.创建DataSet  
                ds = new DataSet();

                //5.填充DataSet  
                adapter.Fill(ds, "tbl_admin");
                                

            }
            catch (Exception ee)
            {
                Console.WriteLine("发生错误:" + ee.Message);
            }
            finally
            {
                if (connection.State == ConnectionState.Open || connection.State == ConnectionState.Broken)
                {
                    connection.Close();//关闭连接  
                }

            }
            return ds;
        }
当窗体加载的 时候执行的方法

 ds = this.getDataSet();
 //DataGridView的属性“name”是“dataGridView1”,绑定数据源  
 dataGridView1.DataSource = ds.Tables["tbl_admin"];
查询,TreeView选中后执行的方法

 /// <summary>
        /// 控件TreeView的属性“name”是treeView2
        /// 控件DataGridView属性“name”是dataGridView1
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void afterSelect(object sender, TreeViewEventArgs e)
        {
            DataView dv = new DataView(ds.Tables["tbl_admin"]);
            String rowFilter = string.Empty;//筛选条件
            rowFilter = string.Format("name='{0}'", this.treeView2.SelectedNode.Text);

            //筛选name = "name"并显示
            dv.RowFilter = rowFilter;
            dv.Sort = "name desc";
            dataGridView1.DataSource = dv;
        }







6.3在DataGridView控件中实现删除操作


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值