1.获取数据源(select * from table名称)

2.动态绑定数据源

  private void GetTableInfo(DataTable dt)
{
listBh = new List<BH_DICTInfo>();
foreach (DataRow dr in dt.Rows)
{
BH_DICTInfo model = new BH_DICTInfo();
model.DictId = dr["DICT_ID"].ToString();
model.DictName = dr["DICT_NAME"].ToString();
model.DictType = dr["DICT_TYPE"].ToString();
model.Enable = Convert.ToDecimal(dr["ENABLE"].ToString());
model.Orders = Convert.ToDecimal(dr["ORDERS"].ToString());
model.Remark = dr["REMARK"].ToString();
listBh.Add(model);
}
dgvBh.DataSource = listBh;
//清除上次数据源
this.dgvBh.Columns.Clear();
//属性时是否自动创建列
dgvBh.AutoGenerateColumns = false; DisplayCol(dgvBh, "DictId", "字典编号");
DisplayCol(dgvBh, "DictName", "字典名称");
DisplayCol(dgvBh, "DictType", "字典类型");
DisplayCol(dgvBh, "Orders", "字典名称");
DisplayCol(dgvBh, "Enable", "是否可用");
DisplayCol(dgvBh, "Remark", "备注");
DisplayCol(dgvBh, "Checkbox", "删除");
//this.dgvBh.DataMember = "DictName,DictType,Orders,Enable,Remark";
this.dgvBh.Columns[].Visible = false;
}
/// <summary>
/// 添加列表头
/// </summary>
/// <param name="dgv"></param>
/// <param name="dataPropertyName"></param>
/// <param name="headerText"></param>
void DisplayCol(DataGridView dgv, string dataPropertyName, string headerText)
{
//dgv.Columns[dataPropertyName].Width = 100;
if (dataPropertyName == "Checkbox")
{
DataGridViewCheckBoxColumn ck = new DataGridViewCheckBoxColumn();
ck.DataPropertyName = dataPropertyName;
ck.HeaderText = headerText;
ck.Name = dataPropertyName;
dgv.Columns.AddRange(new DataGridViewColumn[] { ck });
}
else
{
DataGridViewTextBoxColumn obj = new DataGridViewTextBoxColumn();
obj.DataPropertyName = dataPropertyName;
obj.HeaderText = headerText;
obj.Name = dataPropertyName;
obj.Resizable = DataGridViewTriState.True;
obj.ReadOnly = true;
dgv.Columns.AddRange(new DataGridViewColumn[] { obj });
}
}

3.获取选中的行

 #region 修改事件
/// <summary>
/// 修改事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnBh_update_Click(object sender, EventArgs e)
{
model = new BH_DICTInfo();
foreach (DataGridViewRow row in this.dgvBh.SelectedRows)
{
model.DictId = row.Cells["DictId"].Value.ToString();
model.DictName = row.Cells["DictName"].Value.ToString();
model.DictType = row.Cells["DictType"].Value.ToString();
model.Enable = Convert.ToDecimal(row.Cells["Enable"].Value.ToString());
model.Orders = Convert.ToDecimal(row.Cells["Orders"].Value.ToString());
model.Remark = row.Cells["Remark"].Value.ToString();
}
if (model == null)
MessageBox.Show("请选择");
BhDictAddEdit SysEdit = new BhDictAddEdit("业务字典编辑信息", "保存编辑", model);
SysEdit.ShowDialog();
BindDataBh();
}
#endregion

4.删除多行操作

   #region 删除事件
/// <summary>
///删除事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnBh_delete_Click(object sender, EventArgs e)
{
//动态添加链接对象语句
StringBuilder sqlStr = new StringBuilder();
for (int i = ; i < dgvBh.Rows.Count; i++)
{
object cbh = this.dgvBh.Rows[i].Cells["Checkbox"].Value;
if (cbh != null)
{
sqlStr.Append("DICT_ID=");
sqlStr.Append("\'");
sqlStr.Append(this.dgvBh.Rows[i].Cells["DictId"].Value.ToString());
sqlStr.Append("\'");
sqlStr.Append(" or ");
}
} if (sqlStr.ToString() != "")
{
string sq = sqlStr.ToString().Substring(, sqlStr.ToString().TrimEnd().LastIndexOf("or")); if (DevExpress.XtraEditors.XtraMessageBox.Show("您确定要删除吗?", "系统提示") == System.Windows.Forms.DialogResult.OK)
// if (MessageBox.Show("您确定要删除吗?", "系统提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == System.Windows.Forms.DialogResult.Yes)
{
string sql = "delete from bh_dict where " + sq + "";
ParameterSetConfig.GetDataDal();
ParameterSetConfig.OpenDB();
DataTable dt = ParameterSetConfig._dataDal.ExecuteSqlReturnTable(sql);
ParameterSetConfig.closeDB();
BindDataBh();
}
}
else
{
MessageBox.Show("请选择要删除的行");
}
}

DataGridview动态添加列的更多相关文章

  1. C# DataGridView 动态添加列和行

    https://blog.csdn.net/alisa525/article/details/7350471 dataGridView1.ReadOnly = true ;      //禁用编辑功能 ...

  2. C# DataGridView 动态添加列和调整列顺序

    https://yq.aliyun.com/articles/421700 // DataGridView1的ColumnDisplayIndexChanged事件处理方法private void D ...

  3. asp.net gridview动态添加列,并获取其数据;

    1,绑定数据前先动态添加列,见方法CreateGridColumn(只在第一次加载动态添加): 2,gvlist_RowDataBound为对应列添加控件: 前台代码: <%@ Page Lan ...

  4. GridView动态添加列之后,导致PostBack(回发)页面数据丢失问题解决

    直入主题,首先声明,这个问题是无法解决的,特此在这说明 一.如何动态添加列,如下: 在页面重写OnInit事件,至于为什么要在这个事件写,根据页面的声明周期和经验可知(不用去别的地方找了,这个我找了之 ...

  5. [转]RDLC报表——动态添加列

    本文转自:http://www.cnblogs.com/pszw/archive/2012/07/19/2599937.html 前言 最近接到一个需求:在给定的数据源中,某(些)列,可能需要单独统计 ...

  6. DataGridView动态添加新行的两种方法

    简单介绍如何为DataGridView控件动态添加新行的两种方 法: 方法一: int index=this.dataGridView1.Rows.Add();this.dataGridView1.R ...

  7. datagridview 代码添加列

    int column_key = 0; private DataGridViewTextBoxColumn column_add(string name) { DataGridViewTextBoxC ...

  8. Wpf DataGrid动态添加列,行数据(二)

    这是第二中方法,可直接绑定,我这里只是做出了一种思路,并不是最完美. 这里注意一下,因为我里面引用了MVVMLight,所以可能代码不是复制过去就能用了的. 样式也是,所以复制过去看不是我贴出来的界面 ...

  9. gridview动态添加列的问题

    相信大家也和我一样遇到过这种问题,gridview在生成列的时候当列不确定怎么办?下面分享一下自己的解决方法. 举个列子说明一下. 普通列的添加比较简单. BoundField bf = new Bo ...

随机推荐

  1. LeetCode29 Divide Two Integers

    题目: Divide two integers without using multiplication, division and mod operator. If it is overflow, ...

  2. Nice是如何做iOS客户端架构的?

    一个创业产品的iOS客户端架构到底怎么做呢?现下最有活力的图片社交软件Nice的技术负责人刘诗彬将为我们解答创业产品如何实现iOS客户端架构. 分享人:刘诗彬,毕业于北京邮电大学电子信息科学与技术专业 ...

  3. Xcode代码格式化教程,可自定义样式

    来源:iOS_小松哥 链接:http://www.jianshu.com/p/a725e24d7835 为什么要格式化代码 当团队内有多人开发的时候,每个人写的代码格式都有自己的喜好,也可能会忙着写代 ...

  4. Code Jam 2008 APAC local onsites Problem C. Millionaire —— 概率DP

    题意: 你有X元钱,进行M轮赌博游戏.每一轮可以将所持的任意一部分钱作为赌注(赌注为0元表示这一轮不押),赌注可以是小数的,不是一定要整数.每一轮 赢的概率为P,赢了赌注翻倍,输了赌注就没了.如果你最 ...

  5. 测试你是否和LTC水平一样高

    Problem Description 大家提到LTC都佩服的不行,不过,如果竞赛只有这一个题目,我敢保证你和他绝对在一个水平线上!你的任务是:计算方程x^2+y^2+z^2= num的一个正整数解. ...

  6. 【Mood-18】github 使用指南

    windows下使用教程: http://www.cnblogs.com/dongdong230/p/4211221.html repository not found error问题解决(需确定gi ...

  7. 利用Android手机里的摄像头进行拍照

    ------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 1.在API Guides中找到Camera,里面讲解了如何使用系统自带的摄像头进行工作,之后我会试着翻 ...

  8. iOS UITableView的一些方法

    项目中用到的一些tabview 问题及对应方法: 一.tableview 1.下划线左对齐 //步骤一:(加在 viewdidload方法中) if([tabView respondsToSelect ...

  9. Google IP 最新地址

    原文地址:https://ideas.spkcn.com/technology/250.html 2015年 目前最新可以直接访问google的IP91.213.30.152173.194.77.14 ...

  10. Javascript -- Math.round()、Math.ceil()、Math.floor()、parseInt去小数取整总结

    一.Math.round() 作用:四舍五入返回整数.(返回参数+0.5后,向下取整) Math.round(5.57) //返回6 Math.round(2.4) //返回2 Math.round( ...