winform中gridview的绑定问题 以前是做web的,今天第一次做winform,对里面的gridview还不熟。我在gridview里面添加了2列,从Excel里面取数据绑定到gridview,但是数据并没有绑定到我添加的那两列里面,而是自己新增了两列,这个问题应该怎么解决,麻烦各位了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 private void ManageUser_Load(object sender, EventArgs e) { BindList(); } DataGridViewButtonColumn insertbutton; DataSet ds = null; BindingSource bd = new BindingSource(); private void BindList() { connstr = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" + Application.StartupPath + "\\" + "Exam.mdb"; string sql = "select * from users where 1=1 "; if (textBox1.Text.Trim() != "") { sql += " and uname like '%" + textBox1.Text.Trim() + "%'"; } sql += "order by id desc"; ds = OleDbHelper.ExecuteDataset(connstr, CommandType.Text, sql); if (ds != null) { dataGridView1.Columns.Clear(); DataTable dt = ds.Tables[0]; bd.DataSource = dt; dataGridView1.DataSource = bd; dataGridView1.Columns[0].HeaderText = "编号"; dataGridView1.Columns[1].HeaderText = "用户名"; dataGridView1.Columns[2].HeaderText = "密码"; dataGridView1.Columns[3].HeaderText = "创建时间"; insertbutton = new DataGridViewButtonColumn(); insertbutton.Text = "删除"; insertbutton.Name = "Delete"; insertbutton.Width = 60; insertbutton.UseColumnTextForButtonValue = true; dataGridView1.Columns.Add(insertbutton); dataGridView1.Columns[4].HeaderText = "操作"; //dataGridView1.Rows.Remove(this.dataGridView1.CurrentRow); dataGridView1.Width = 600; //dataGridView1.data } } private void button1_Click(object sender, EventArgs e) { BindList(); } private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { if (dataGridView1.Columns[e.ColumnIndex] == insertbutton && e.RowIndex > -1) { DialogResult result = MessageBox.Show("您确定要删除吗?", "警告", MessageBoxButtons.OKCancel); if (result == System.Windows.Forms.DialogResult.OK) { string delsql = "delete from users where id=" + dataGridView1[0, e.RowIndex].Value.ToString() + ""; int count = OleDbHelper.ExecuteNonQuery(connstr, CommandType.Text, delsql); if (count < 1) { MessageBox.Show("删除失败"); } } BindList(); } } private void first_Click(object sender, EventArgs e) { bd.Position = 0; } private void prior_Click(object sender, EventArgs e) { bd.Position--; } private void next_Click(object sender, EventArgs e) { bd.Position++; } private void end_Click(object sender, EventArgs e) { bd.Position = ds.Tables[0].Rows.Count - 1; } static public DataSet ExcelToDataSet(string filename) { DataSet ds; string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Extended Properties=Excel 8.0;" + "data source=" + filename; OleDbConnection myConn = new OleDbConnection(strCon); string strCom = " SELECT * FROM [Sheet1$]"; myConn.Open(); OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, myConn); ds = new DataSet(); myCommand.Fill(ds); myConn.Close(); return ds; } private void Querybtn_Click(object sender, EventArgs e) { if (txtFileName.Text != "") { DataSet ds = ExcelToDataSet(txtFileName.Text);//txtFileName.Text为文件路径 gvExcel.DataSource = ds.Tables[0]; } } 绑定代码没问题啊,Girdview 他有个自动生成列的 你设置为flase看看 现在有新问题了,我把自动生成列的属性设置成FALSE后,数据绑不上去了this.gvExcel.AutoGenerateColumns = false; 怎么回事 会议系统 怎么将一个TreeView上的数据复制到另一个TreeView上 c# 如何上手 求教:winform下listview虚拟模式逐个加载item的问题 VS05 treeview中点击传递值问题? 别以为微软了还起,MSDN里面的代码也有错! 在线等待:shema中的问题,急!!! 初学的简单问题 插入记录时如何得知记录已存在???? 关于跳过对话框的问题 我所有的分了 谢谢! 最匹配的重载方法具有一些无效参数 winform程序 关于在win7上运行时任务栏上的图片显示UAC盾牌的问题..
{
BindList();
}
DataGridViewButtonColumn insertbutton;
DataSet ds = null;
BindingSource bd = new BindingSource();
private void BindList()
{
connstr = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" + Application.StartupPath + "\\" + "Exam.mdb";
string sql = "select * from users where 1=1 ";
if (textBox1.Text.Trim() != "")
{
sql += " and uname like '%" + textBox1.Text.Trim() + "%'";
}
sql += "order by id desc";
ds = OleDbHelper.ExecuteDataset(connstr, CommandType.Text, sql);
if (ds != null)
{
dataGridView1.Columns.Clear();
DataTable dt = ds.Tables[0];
bd.DataSource = dt;
dataGridView1.DataSource = bd;
dataGridView1.Columns[0].HeaderText = "编号";
dataGridView1.Columns[1].HeaderText = "用户名";
dataGridView1.Columns[2].HeaderText = "密码";
dataGridView1.Columns[3].HeaderText = "创建时间";
insertbutton = new DataGridViewButtonColumn();
insertbutton.Text = "删除";
insertbutton.Name = "Delete";
insertbutton.Width = 60;
insertbutton.UseColumnTextForButtonValue = true;
dataGridView1.Columns.Add(insertbutton);
dataGridView1.Columns[4].HeaderText = "操作"; //dataGridView1.Rows.Remove(this.dataGridView1.CurrentRow); dataGridView1.Width = 600;
//dataGridView1.data
}
} private void button1_Click(object sender, EventArgs e)
{
BindList();
} private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (dataGridView1.Columns[e.ColumnIndex] == insertbutton && e.RowIndex > -1)
{
DialogResult result = MessageBox.Show("您确定要删除吗?", "警告", MessageBoxButtons.OKCancel);
if (result == System.Windows.Forms.DialogResult.OK)
{
string delsql = "delete from users where id=" + dataGridView1[0, e.RowIndex].Value.ToString() + "";
int count = OleDbHelper.ExecuteNonQuery(connstr, CommandType.Text, delsql);
if (count < 1)
{
MessageBox.Show("删除失败");
}
}
BindList();
}
} private void first_Click(object sender, EventArgs e)
{
bd.Position = 0;
} private void prior_Click(object sender, EventArgs e)
{
bd.Position--;
} private void next_Click(object sender, EventArgs e)
{
bd.Position++;
} private void end_Click(object sender, EventArgs e)
{
bd.Position = ds.Tables[0].Rows.Count - 1;
}
{
DataSet ds;
string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Extended Properties=Excel 8.0;" +
"data source=" + filename;
OleDbConnection myConn = new OleDbConnection(strCon);
string strCom = " SELECT * FROM [Sheet1$]";
myConn.Open();
OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, myConn);
ds = new DataSet();
myCommand.Fill(ds);
myConn.Close();
return ds;
}
private void Querybtn_Click(object sender, EventArgs e)
{
if (txtFileName.Text != "")
{
DataSet ds = ExcelToDataSet(txtFileName.Text);//txtFileName.Text为文件路径 gvExcel.DataSource = ds.Tables[0];
}
}