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. java 简单矩阵乘法运算

    1.计算的两个矩阵其中第一个矩阵的列数必须和第二个矩阵的行数一致(或者反过来): 2.第一个矩阵的行数决定了结果矩阵的行数,第二个矩阵的列数决定了结果矩阵的列数: package org.admln. ...

  2. Socket 之 c#实现Socket网络编程

    一.命名空间: 在网络环境下,最有用的两个命名空间是System.Net和 System.Net.Sockets. 1.System.Net:通常与较高程的操作有关,例如download或upload ...

  3. ubuntu16.04 编译安装mysql5.7.x,以及配置使用

    編譯與安裝: 源码下载地址:http://dev.mysql.com/downloads/mysql/    选择Generic Linux (Architecture Independent), C ...

  4. 新手不了解Xcode和mac系统可能犯得错误和我的建议

    我是学iOS刚入门的新手,本人装的时黑苹果,我是喜欢完美的人,但黑苹果又是不完美的系统,比如关不了机啊,和显卡驱动不了啊,当自己的电脑出现白屏和卡顿的时候气的没脾气.我是一个新手.开始学的时java但 ...

  5. GSS7 spoj 6779. Can you answer these queries VII 树链剖分+线段树

    GSS7Can you answer these queries VII 给出一棵树,树的节点有权值,有两种操作: 1.询问节点x,y的路径上最大子段和,可以为空 2.把节点x,y的路径上所有节点的权 ...

  6. How To Install Development Tools In Linux

      In this brief tutorial, we will be discussing how to install development tools in popular Linux di ...

  7. Ajax学习笔记(一)

    来源:http://www.imooc.com/learn/250 Ajax不是某种编程语言,而是一种在无须重新加载整个网页的情况下能够更新部分网页的技术. 一.概念介绍--异步 利用XMLHttpR ...

  8. [转载]在线考试javaScript倒计时

    <script type="text/javascript"> /* ================== hi.baidu.com/coolinc === */ va ...

  9. web服务器内置对象,或者说是ServletAPI的实例

    final javax.servlet.jsp.PageContext pageContext; javax.servlet.http.HttpSession session = null;   // ...

  10. JAVA之执行cmd命令

    感言在前:时隔好久没有更新博客园了,忙东忙西也没忙出个什么之所以然来.回首过去一两个月,只能用“疲倦”两个字来形容,而且是身心疲惫.每天11.12个小时的工作我都没觉得烦,但是总是想克服却又很难克服的 ...