我有一个通过数据集从数据库中获取数据的功能
public DataSet getDataSet(string query)
{
DataSet ds = new DataSet();
OleDbDataAdapter da1 = new OleDbDataAdapter(query, sybaseconn);
OleDbCommand cmd1 = new OleDbCommand(query, sybaseconn);
cmd1.CommandType = CommandType.StoredProcedure;
da1.SelectCommand = cmd1;
da1.Fill(ds, "tbl");
da1.Dispose();
da1 = null;
SybaseconnClose();
return ds;
}
这很好用。所选列为“Nr”和“备注” 我在下一个函数中调用此函数。 我的datagridview将与数据集绑定。
private void LoadData()
{
dataGridView1.DataSource = null;
Application.DoEvents();
TTT3Dal awdal = new TTT3Dal();
DataSet dsAWIA = awdal.getDataSet("select_tbl");
awdal.dsTTT3 = dsAWIA;
dataGridView1.DataSource = dsAWIA.Tables["tbl"].DefaultView;
bindingSource1.DataMember = "tbl";
//dataGridView1.DataBindings.Add("Text", bindingSource1, "nr");
}
这也很好。 在表单中,我调用最后一个函数和bindingNavigator。
public Form1()
{
InitializeComponent();
LoadData();
bindingNavigator1.BindingSource = bindingSource1;
}
工作正常,但如果我取消注释该行
//dataGridView1.DataBindings.Add("Text“,bindingSource1,”nr“);
我收到此错误
无法绑定到DataSource上的属性或列nr。 参数名称:dataMember
我尝试通过添加行
来解决这个问题dataGridView1.DataMember =“tbl”;
但后来我收到了错误
无法创建字段tbl的子列表。
有人可以帮我解决这个问题,并帮我将datagridview绑定到bindingnavigator
答案 0 :(得分:3)
没关系,我用下一个代码解决了它
private void LoadData()
{
dataGridView1.DataSource = null;
TTT3Dal awdal = new TTT3Dal();
DataSet dsAWIA = awdal.getDataSet("select_tbl");
awdal.dsTTT3 = dsAWIA;
BindingNavigator _bindnav = new BindingNavigator(true);
bindingSource1.DataSource = dsAWIA;
bindingNavigator1.BindingSource = bindingSource1;
dataGridView1.DataSource = bindingSource1;
}