我用bindingsource绑定的数据,在datagridview中获取选定行的记录,为什么是空值?
绑定数据的代码(string strSQL = "select * from table";
DataTable dataTable = CT.dataBase.GetDataTable(strSQL);
BindingSource dataSource = new BindingSource(dataTable, null);
datagridview1.DataSource = dataSource;)
使用上面方法 string name = dataGridView1.SelectedCells[1].Value.ToString();
string name = dataGridView1.Rows[1].Cells[1].Value.ToString();
这name变量获取不到值;如果绑定数据代码改为
(string strSQL = "select * from table";
DataTable dataTable = CT.dataBase.GetDataTable(strSQL);
datagridview1.DataSource = dataTable;)
变时NAME就可以获得值;同样也是使用
string name = dataGridView1.SelectedCells[1].Value.ToString();
string name = dataGridView1.Rows[1].Cells[1].Value.ToString();这是什么原因?哪个高手帮忙解决一下;
绑定数据的代码(string strSQL = "select * from table";
DataTable dataTable = CT.dataBase.GetDataTable(strSQL);
BindingSource dataSource = new BindingSource(dataTable, null);
datagridview1.DataSource = dataSource;)
使用上面方法 string name = dataGridView1.SelectedCells[1].Value.ToString();
string name = dataGridView1.Rows[1].Cells[1].Value.ToString();
这name变量获取不到值;如果绑定数据代码改为
(string strSQL = "select * from table";
DataTable dataTable = CT.dataBase.GetDataTable(strSQL);
datagridview1.DataSource = dataTable;)
变时NAME就可以获得值;同样也是使用
string name = dataGridView1.SelectedCells[1].Value.ToString();
string name = dataGridView1.Rows[1].Cells[1].Value.ToString();这是什么原因?哪个高手帮忙解决一下;
你看看winform,asp.net, wpf/silverlight的示例代码,绝大多数都是根据控件所绑定的数据源的“当前位置”来取得所谓“当前行”的数据。
Type: System.Object
The data source for the BindingSource.dataMember
Type: System.String
The specific column or list name within the data source to bind to.你的代码是-----BindingSource dataSource = new BindingSource(dataTable, null);
dataMember 为Null
绑定之后才没值的。
BindingSource dataSource = new BindingSource();
dataSource.DataSource = dataTable;
datagridview1.DataSource = dataSource;3、如果你还是要用你的那种办法,可以看下下面的:
DataSet myDataSet = new DataSet("myDataSet");
DataTable tableCustomers = new DataTable("Customers");
myDataSet.Tables.Add(tableCustomers);
// Insert code to populate the DataSet. // Set DataSource and DataMember with SetDataBinding method.
string member;
// The name of a DataTable is Customers.
member = "Customers";
dataGrid1.SetDataBinding(myDataSet, member);
dataSource.DataSource = dataTable;
datagridview1.DataSource = dataSource;
这方法试过了,跟bindingsource datasource=new bindingsource(datatable,null)一样的结果;在GRIDVIEW上可以显示数据;就是获取不到选中行的数据;3、如果你还是要用你的那种办法,可以看下下面的:
DataSet myDataSet = new DataSet("myDataSet");
DataTable tableCustomers = new DataTable("Customers");
myDataSet.Tables.Add(tableCustomers);
// Insert code to populate the DataSet. // Set DataSource and DataMember with SetDataBinding method.
string member;
// The name of a DataTable is Customers.
member = "Customers";
dataGrid1.SetDataBinding(myDataSet, member);这种方法试过了,不能实现DATAGRIDVIEW像EXCEL里面那种筛选功能;
dt.Columns.Add("B1",typeof(string));
dt.Columns.Add("B2",typeof(string));
dt.Columns.Add("B3", typeof(string));
dt.Rows.Add("1", "21", "31");
dt.Rows.Add("2", "22", "32");
dt.Rows.Add("3", "23", "33"); DataSet myDataSet = new DataSet("myDataSet");
myDataSet.Tables.Add(dt);
// Insert code to populate the DataSet.
// Set DataSource and DataMember with SetDataBinding method.
string member;
// The name of a DataTable is Customers.
member = "Customers";
BindingSource bs = new BindingSource(myDataSet, member);
dataGridView2.DataSource = bs;我用上面那个方法是能获取到选定行记录的。