您的位置:首页 > 其它

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

2013-04-01 20:46 621 查看
因为是三层架构,所以先在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代码

private void WorkerBasicMessage_Load(object sender, EventArgs e)
{
dataGridView1.AutoGenerateColumns = false;//不需要的数据不选
}

private void button1_Click(object sender, EventArgs e)
{

string userName;
SqlHelper ds = new SqlHelper();
if (true)
{
userName = textBox1.Text.Trim();
}
DataTable dt = ds.dataGrid(userName);//将Id传进去得到一个数据表
dataGridView1.DataSource = dt;
}


数据名要跟数据中对应,如下图加黑的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 索引超出范围。必须为非负值并小于集合大小

private void dGV1_CellClick(object sender, DataGridViewCellEventArgs e)
{
this.radioButton2.Checked = true;
int currentRowIndex = dGV1.CurrentCell.RowIndex;
if (currentRowIndex >= 0)
{
this.label6.Text = Convert.ToString(dGV1[0, currentRowIndex].Value).Trim();//显示编号
this.label4.Text = Convert.ToString(dGV1[1, currentRowIndex].Value).Trim();//显示标题
this.textBox1.Text = Convert.ToString(dGV1[3, currentRowIndex].Value).Trim();//问题描述
this.textBox3.Text = Convert.ToString(dGV1[5, currentRowIndex].Value).Trim();//解决方法描述
if (Convert.ToString(dGV1[6, currentRowIndex].Value).Trim() == "已解决")
{
this.radioButton1.Checked = true;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐