还是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到我们在说什么...