WinForm简单代码DataGridView与ListView的转换

5 篇文章 0 订阅

学习网址:

http://www.cnblogs.com/guolebin7/archive/2012/09/18/2690902.html
http://www.cnblogs.com/Johness/archive/2012/03/30/2424315.html


<appSettings>
		<add key="MyTest" value="Server=.\MYSQL2008;uid=sa;pwd=sa123456;Database=MyTest;" ></add>
		<add key="MySqlDataBase" value="Server=.\MYSQL2008;uid=sa;pwd=sa123456;Database=MySqlDataBase;" />
	</appSettings>
	<!--<dataConfiguration defaultDatabase="MySqlDataBase" />-->
	<connectionStrings>
		<add name="ApplicationServices"
			 connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true"
			 providerName="System.Data.SqlClient" />
		<add name="MySqlDataBase" providerName="System.Data.SqlClient" connectionString="Server=.\MYSQL2008;uid=sa;pwd=sa123456;Database=MySqlDataBase;" />
	</connectionStrings>
UserInfo class

public UserInfo()
		{ }
		private int _c_id;
		private string _c_code;
		private string _c_name;
		private string _c_remark;
		//private string _c_telephone;
		//private string _c_address;
		//private DateTime? _c_db_create_date;
		//private int? _c_db_create_id;
		//private DateTime _c_db_last_update_date;
		//private int? _c_db_last_update_id;
		//private int _c_db_status = 0;
		/// <summary>
		/// 
		/// </summary>
		public int c_id
		{
			set { _c_id = value; }
			get { return _c_id; }
		}
		/// <summary>
		/// 
		/// </summary>
		public string c_code
		{
			set { _c_code = value; }
			get { return _c_code; }
		}
		/// <summary>
		/// 
		/// </summary>
		public string c_name
		{
			set { _c_name = value; }
			get { return _c_name; }
		}
		/// <summary>
		/// 
		/// </summary>
		public string c_remark
		{
			set { _c_remark = value; }
			get { return _c_remark; }
		}
		/ <summary>
		/ 
		/ </summary>
		//public string c_telephone
		//{
		//    set { _c_telephone = value; }
		//    get { return _c_telephone; }
		//}
		/ <summary>
		/ 
		/ </summary>
		//public string c_address
		//{
		//    set { _c_address = value; }
		//    get { return _c_address; }
		//}

		//public DateTime? c_db_create_date
		//{
		//    set { _c_db_create_date = value; }
		//    get { return _c_db_create_date; }
		//}
		/ <summary>
		/ 
		/ </summary>
		//public int? c_db_create_id
		//{
		//    set { _c_db_create_id = value; }
		//    get { return _c_db_create_id; }
		//}
		/ <summary>
		/ 
		/ </summary>
		//public DateTime c_db_last_update_date
		//{
		//    set { _c_db_last_update_date = value; }
		//    get { return _c_db_last_update_date; }
		//}
		/ <summary>
		/ 
		/ </summary>
		//public int? c_db_last_update_id
		//{
		//    set { _c_db_last_update_id = value; }
		//    get { return _c_db_last_update_id; }
		//}
		/ <summary>
		/ 0正常,1删除,2回收站
		/ </summary>
		//public int c_db_status
		//{
		//    set { _c_db_status = value; }
		//    get { return _c_db_status; }
		//}
UserInfo class:

public static DbBase db = new DbBase();
		/// <summary>
		/// 对象实体绑定数据
		/// </summary>
		public UserInfo DataTableToListBind(DataTable dt)
		{
			UserInfo model = new UserInfo();
			object ojb;
			ojb = dt.Columns["c_id"];
			if (ojb != null && ojb != DBNull.Value)
			{
				model.c_id = (int)ojb;
			}
			model.c_code = dt.Columns["c_code"].ToString();
			model.c_name = dt.Columns["c_name"].ToString();
			model.c_remark = dt.Columns["c_remark"].ToString();
			//model.c_telephone = dt["c_telephone"].ToString();
			//model.c_address = dt["c_address"].ToString();
			//ojb = dt["c_db_create_date"];
			//if (ojb != null && ojb != DBNull.Value)
			//{
			//    model.c_db_create_date = (DateTime)ojb;
			//}
			//ojb = dt["c_db_create_id"];
			//if (ojb != null && ojb != DBNull.Value)
			//{
			//    model.c_db_create_id = (int)ojb;
			//}
			//ojb = dt["c_db_last_update_date"];
			//if (ojb != null && ojb != DBNull.Value)
			//{
			//    model.c_db_last_update_date = (DateTime)ojb;
			//}
			//ojb = dt["c_db_last_update_id"];
			//if (ojb != null && ojb != DBNull.Value)
			//{
			//    model.c_db_last_update_id = (int)ojb;
			//}
			//ojb = dt["c_db_status"];
			//if (ojb != null && ojb != DBNull.Value)
			//{
			//    model.c_db_status = (int)ojb;
			//}
			return model;
		}
		public List<UserInfo> GetModelList(string strWhere)
		{

			DataSet ds = db.DS(strWhere);
			return DataTableToList(ds.Tables[0]);
		}

		public List<UserInfo> DataTableToList(DataTable dt)
		{
			List<UserInfo> entityList = new List<UserInfo>();
			int rowCount = dt.Rows.Count;
			if (rowCount > 0)
			{
				UserInfo entity;
				for (int i = 0; i < rowCount; i++)
				{
					entity = DataRowToEntity(dt.Rows[i]);
					if (entity != null)
					{
						entityList.Add(entity);
					}
				}
			}
			return entityList;
		}
		public UserInfo DataRowToEntity(DataRow dr)
		{
			UserInfo entity = new UserInfo();
			if (dr != null)
			{
				if (dr["c_id"] != null && dr["c_id"].ToString() != "")
				{
					entity.c_id = int.Parse(dr["c_id"].ToString());
				}
				if (dr["c_code"] != null && dr["c_code"].ToString() != "")
				{
					entity.c_code = dr["c_code"].ToString();
				}
				if (dr["c_name"] != null && dr["c_name"].ToString() != "")
				{
					entity.c_name = dr["c_name"].ToString();
				}
				if (dr["c_remark"] != null && dr["c_remark"].ToString() != "")
				{
					entity.c_remark = dr["c_remark"].ToString();
				}
				//if (dr["c_is_defalut"] != null && dr["c_is_defalut"].ToString() != "")
				//    {
				//        if ((dr["c_is_defalut"].ToString() == "1") || (dr["c_is_defalut"].ToString().ToLower() == "true"))
				//        {
				//            entity. = true;
				//        }c_is_defalut
				//        else
				//        {
				//            entity.c_is_defalut = false;
				//        }
				//    }
			}
			return entity;
		}
		public DataTable GetDgvToTable(DataGridView dgv)
		{
			DataTable dt = new DataTable();
			for (int count = 0; count < dgv.Columns.Count; count++)
			{
				DataColumn dc = new DataColumn(dgv.Columns[count].Name);
				dt.Columns.Add(dc);
			}
			for (int i = 0; i < dgv.RowCount; i++)
			{
				DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)dgv.Rows[i].Cells[0];
				Boolean flag = Convert.ToBoolean(checkCell.Value);
				if (flag == true)
				{
					DataRow dr = dt.NewRow();
					for (int countsub = 0; countsub < dgv.Columns.Count; countsub++)
					{
						dr[countsub] = Convert.ToString(dgv.Rows[i].Cells[countsub].Value);
					}
					dt.Rows.Add(dr);
				}

			}
			
			//for (int count = 0; count < dgv.Rows.Count; count++)
			//{
			//    DataRow dr = dt.NewRow();
			//    for (int countsub = 0; countsub < dgv.Columns.Count; countsub++)
			//    {
			//        dr[countsub] = Convert.ToString(dgv.Rows[count].Cells[countsub].Value);
			//    }
			//    dt.Rows.Add(dr);
			//}
			return dt;
		}
DbBase class:

public DbBase()
		{ }
		public DataSet DS(string strSql)
		{
			string strConnection = ConfigurationManager.AppSettings["MySqlDataBase"].ToString();
			//string strConnection = ConfigurationManager.ConnectionStrings["MySqlDataBase"].ConnectionString;
			//string strSql = "select * from studentInfo where c_name like '%" + Session["Key"].ToString() +"%'";
			//string strSql = "SELECT * FROM (SELECT row_number() over(order by Gs.PtypeId) AS rw,Gs.Qty as 数量,Gs.Price as 单价,Gs.Total as 总金额,Pt.* FROM GoodsStocks Gs left join ptype as Pt on Pt.ptypeid=Gs.PtypeId ) t WHERE rw between 1 AND 10;";
			SqlConnection conn = new SqlConnection(strConnection);
			conn.Open();
			SqlCommand cmd = new SqlCommand();
			SqlDataAdapter da = new SqlDataAdapter(strSql, conn);
			conn.Close();
			DataSet ds = new DataSet();
			da.Fill(ds);
			return ds;
		}
Form1 后台代码:

public Form1()
		{
			InitializeComponent();
		}

		private void Form1_Load(object sender, EventArgs e)
		{
			DataInit();
		}
		public void DataInit()
		{
			string strSql = "select c_id,c_code,c_name from studentInfo where c_db_status=0";
			DataSet ds = DS(strSql);
			dataGridView1.DataSource = ds.Tables[0];
			
			//dataGridView1.DataBindings();
		}
		/// <summary>
		/// 获取指定名称的数据库连接字符串
		/// </summary>
		/// <param name="connectionName">连接名</param>
		/// <returns>连接字符串</returns>
		private static string GetConnectionString(string connectionName)
		{
			return ConfigurationManager.ConnectionStrings[connectionName].ConnectionString.ToString();
		}

		public DataSet DS(string strSql)
		{
			//dataGridView1.AutoGenerateColumns = false; 
			string strConnection = ConfigurationManager.AppSettings["MySqlDataBase"].ToString();
			//string strConnection = ConfigurationManager.ConnectionStrings["MySqlDataBase"].ConnectionString;
			//string strSql = "select * from studentInfo where c_name like '%" + Session["Key"].ToString() +"%'";
			//string strSql = "SELECT * FROM (SELECT row_number() over(order by Gs.PtypeId) AS rw,Gs.Qty as 数量,Gs.Price as 单价,Gs.Total as 总金额,Pt.* FROM GoodsStocks Gs left join ptype as Pt on Pt.ptypeid=Gs.PtypeId ) t WHERE rw between 1 AND 10;";
			SqlConnection conn = new SqlConnection(strConnection);
			conn.Open();
			SqlCommand cmd = new SqlCommand();
			SqlDataAdapter da = new SqlDataAdapter(strSql, conn);
			conn.Close();
			DataSet ds = new DataSet();
			da.Fill(ds);
			return ds;
		}

		private void btnToListView_Click(object sender, EventArgs e)
		{
			int count = Convert.ToInt32(dataGridView1.Rows.Count.ToString());
			for (int i = 0; i < count; i++)
			{
				//如果DataGridView是可编辑的,将数据提交,否则处于编辑状态的行无法取到 
				dataGridView1.EndEdit();
				DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)dataGridView1.Rows[i].Cells[0];
				Boolean flag = Convert.ToBoolean(checkCell.Value);
				if (flag == true)     //查找被选择的数据行 
				{
					//从 DATAGRIDVIEW 中获取数据项 
					string z_zcode = dataGridView1.Rows[i].Cells[0].Value.ToString().Trim();

				}
			}
			//这里仅限树立思路,剩下的代码有你自己写
			//1.首先要做到的是GridView的行点击事件,这里可以获取到当前行的ID,这个ID是唯一值
			//获取了当前的数据之后我们可以读取当前数据通过ID更新当前数据的State状态值(可以理解成软删除),
			//读取出当前行 的数据意味着是一个UserInfo实体,直接用实体赋值到ListView里面去。这里没有技术难点就是死路的梳理

			List<UserInfo> userlist = new List<UserInfo>();
			DataTable dt = new DataTable();
			UserInfoDAL dal = new UserInfoDAL();
			dt = dal.GetDgvToTable(dataGridView1);
			userlist = dal.DataTableToList(dt);
			//UserInfo user = new UserInfo();
			//user.c_name = "小丁";
			//userlist.Add(user);

			//UserInfo user1 = new UserInfo();
			//user1.c_name = "小郭";
			//userlist.Add(user1);
			//userlist.Add(new   DBNull {ID=dataGridView1.Rows[i].Cells["ID"].Value,Name=...});
			foreach (UserInfo u in userlist)
			{
				this.listView1.Items.Add(u.c_name);
			}
			


		}

		private void btnToDataGridView_Click(object sender, EventArgs e)
		{


		}
点击按钮前:

点击按钮后:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fengzhilu000

送人玫瑰,手留余香!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值