• dataGridView数据绑定及使用方法+索引超出范围


    因为是三层架构,所以先在Dal层,将数据放入DataTable中先

    public DataTable dataGrid(string UserName)
            {
                string sql = string.Format("SELECT * FROM demoUsers WHERE UserName=@UserName");
                Class1 q = new Class1(cc);
                ArrayList paramlist = new ArrayList();
                paramlist.Add(q.CreateParameter("@UserName", UserName, DbType.String, 50));
                IDataParameter[] param = (IDataParameter[])paramlist.ToArray(typeof(IDataParameter));
                return q.testDataTable(sql, param);
            }

    所需要的实体对象,Mod都已经有了,在dataGridView任务中添加自己想要显示出来的数据,设置好后,UI代码

     1         private void WorkerBasicMessage_Load(object sender, EventArgs e)
     2         {
     3             dataGridView1.AutoGenerateColumns = false;//不需要的数据不选
     4         }
     5 
     6         private void button1_Click(object sender, EventArgs e)
     7         {
     8 
     9             string userName;
    10             SqlHelper ds = new SqlHelper();
    11             if (true)
    12             {
    13                 userName = textBox1.Text.Trim();
    14             }
    15             DataTable dt = ds.dataGrid(userName);//将Id传进去得到一个数据表
    16             dataGridView1.DataSource = dt;
    17          }

    数据名要跟数据中对应,如下图加黑的UserId

     

    //联表查询统计所有记录group by sql语句运用
            public DataTable selectAllMessage()
            { 
                string sql = string.Format("select demoUsers.TrueName,COUNT (leaveMessage.UserId)as 请假次数 from demoUsers inner join leaveMessage on demoUsers.UserId=leaveMessage.UserId group by demoUsers.TrueName");
                DataConn conn = new DataConn(conStr);
                ArrayList paramlist = new ArrayList();
                IDataParameter[] param = (IDataParameter[])paramlist.ToArray(typeof(IDataParameter));
                return conn.testDataTable(sql, param);
            }

    点击控件的记录显示详细数据的话,可设计单击事件CellClick

     datagridview 索引超出范围。必须为非负值并小于集合大小

     1  private void dGV1_CellClick(object sender, DataGridViewCellEventArgs e)
     2         {
     3             this.radioButton2.Checked = true;
     4             int currentRowIndex = dGV1.CurrentCell.RowIndex;
     5             if (currentRowIndex >= 0)
     6             {
     7                 this.label6.Text = Convert.ToString(dGV1[0, currentRowIndex].Value).Trim();//显示编号
     8                 this.label4.Text = Convert.ToString(dGV1[1, currentRowIndex].Value).Trim();//显示标题
     9                 this.textBox1.Text = Convert.ToString(dGV1[3, currentRowIndex].Value).Trim();//问题描述
    10                 this.textBox3.Text = Convert.ToString(dGV1[5, currentRowIndex].Value).Trim();//解决方法描述
    11                 if (Convert.ToString(dGV1[6, currentRowIndex].Value).Trim() == "已解决")
    12                 {
    13                     this.radioButton1.Checked = true;
    14                 }
    15             }
    16         }
  • 相关阅读:
    图片下落效果
    处理springmvc的post和get提交参数乱码问题
    nginx 安装
    xml学习总结(二)
    xml学习总结(一)
    psp系统需求分析
    MySQL Workbench “Error Code: 1175”
    mysql 连接两列
    php UNIX时间戳转换为指定日期格式
    drupal错误: Maximum execution time of 240 seconds exceeded
  • 原文地址:https://www.cnblogs.com/bkycjj/p/2993704.html
Copyright © 2020-2023  润新知