读书人

还是DataGridView的有关问题没办法结

发布时间: 2012-04-01 17:23:46 作者: rapoo

还是DataGridView的问题,没办法结贴
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace DataGridView_P
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{

}

private void B_Ok_Click(object sender, EventArgs e)
{
string sql = "select username,userid,password,serverid from general_user; ";
string source = "server=192.168.0.125;uid=sa;pwd=admin;database=ecs ";
SqlCommand comm = null;
SqlConnection conn = null;
DataSet myDataSet = new DataSet();
conn = new SqlConnection(source);
conn.Open();
SqlDataAdapter myDataAdapter = new SqlDataAdapter(sql,conn);
myDataAdapter.Fill(myDataSet, "general_user ");
//dataGridView1.Columns[0].HeaderText = "这里会出错 ";
为什么一加上上面这一行就会出错呢,我搞不明白,高好来给我看一下好吗?
dataGridView1.DataSource = myDataSet.Tables[ "general_user "].DefaultView;
conn.Close();
}

private void B_Out_Click(object sender, EventArgs e)
{
Environment.Exit(0);


}
}
}

[解决办法]
myDataAdapter.Fill(myDataSet, "general_user ");
dataGridView1.DataSource = myDataSet.Tables[ "general_user "].DefaultView;
dataGridView1.DataBind();
dataGridView1.Columns[0].HeaderText = "这里会出错 ";

[解决办法]
数据都没绑定上去,dataGridView1当然没有列了
[解决办法]
太阳,dataGridView1没有DataBind定义,不知道2楼的是从哪里搞来的
[解决办法]
你的dataGridView1是啥控件,怎么可能没DataBind()事件
[解决办法]
报什么错先?

看你的程序, 貌似dataGridView1根本就什么都没有, 连个列都没有, dataGridView.Column[0]当然要出错, 你得先保证dataGridView里面有东西才行啊
[解决办法]
楼主的代码基本没有问题,只是设置列名时位置不对:
//dataGridView1.Columns[0].HeaderText = "这里会出错 ";
为什么一加上上面这一行就会出错呢,我搞不明白,高好来给我看一下好吗?
dataGridView1.DataSource = myDataSet.Tables[ "general_user "].DefaultView;

改为:
dataGridView1.DataSource = myDataSet.Tables[ "general_user "].DefaultView;
dataGridView1.Columns[0].HeaderText = "这里会出错 ";

先绑定数据再设置列名.
楼上试试吧
[解决办法]
DataGridViewColumn ahead = new DataGridViewColumn();
ahead.CellTemplate = new DataGridViewTextBoxCell();
ahead.HeaderText = "XXXXX ";
dataGridView1.Columns.Add(ahead);
[解决办法]
同意
sz709( "钱 "途越渺茫...,越要拼命学...)

dataGridView1.Columns[0].HeaderText = "这里会出错 ";
dataGridView1.DataSource = myDataSet.Tables[ "general_user "].DefaultView;
这样写数据还没有绑定好,没有生成列,所以dataGridView1.Columns.Count 应该是0
这个时候你用dataGridView1.Columns[0].HeaderText = "这里会出错 ";当然有问题了
[解决办法]
把设置列名的那句放到设置DataSource之后试试看。
[解决办法]
我猜想lz是想在DataGridView中示列名吧!!!
其有的法:在你的sql中
string sql = "select username as 用名,userid as 用,password as 密,serverid as XXX from general_user; ";

如果是在vs2005中,控件本身的性中也可以定字段和列名的bing。

[解决办法]
先执行
DataGridView.DataBind();
再设置列头
[解决办法]
当然有东西了,我数据库里有东西啊,
报这样的错啊
索引超出范围。必须为非负值并小于集合大小。
参数名: index

============

居然....还没catch到我们在说什么...

读书人网 >C#

热点推荐