我有一个从数据库中通过数据集获取数据的函数
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”和“Remark”。 我在下一个函数中调用此函数。 我的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");
我会得到以下错误
无法绑定到数据源上的属性或列 nr。 参数名称:dataMember
我试图通过添加以下代码来解决此问题
dataGridView1.DataMember = "tbl";
但是然后我会得到以下错误
无法创建字段 tbl 的子列表。
请问有人能帮我解决这个问题并帮我将 datagridview 绑定到 bindingnavigator 吗?