我想创建一个表单,我可以在不同的数据库中打开表并删除一些行。
看起来像这样。表格不同。所以我用
boxGrid.Controls.Clear();
DataGridView g = GetTableGrid(databaseName);
boxGrid.Controls.Add(g);
GetTableGrid()
将生成一个新的DataGridView并替换之前的那个
它会改变表格。但是导致问题在于让我删除表中的选定行。
我该怎么办? 我只需要获得行中的第一个col。它是数据库中的主键。
答案 0 :(得分:1)
这里的问题是,每当用户选择一个新表时,你总是创建一个新的datagridview(我会假设它在datagridview下面的按钮)
您可以执行的操作是在boxgrid对象上添加datagridview之前,可以向其添加SelectionChanged。
var query = offers.find({'type':'Point', offer_by:user_id});
// Execute Query and Return the Query Results
query.exec(function(error, result_offers) {
if (error) {
return callback(error, null);
} else {
var array_offers = new Array();
for (var i = 0; i < result_offers.length; i++) {
array_offers.push(formatOffers(result_offers[i]));
}
return callback(null, array_offers);
}
});
然后你可以得到你想要的价值
boxGrid.Controls.Clear();
DataGridView g = GetTableGrid(databaseName);
g.SelectionChanged += new EventHandler(dvg_SelectionChanged);
boxGrid.Controls.Add(g);
答案 1 :(得分:0)
如果您只想获得点击行的某个列(在本例中为第一个列),您可以执行以下操作(它是我如何操作的):
private void yourGridView_SelectionChanged(object sender, EventArgs e)
{
//makes sure a row is selected
if (yourGridView.SelectedCells.Count > 0)
{
int selectedrowindex = yourGridView.SelectedCells[0].RowIndex;
DataGridViewRow selectedRow = yourGridView.Rows[selectedrowindex];
//guessing you´re storing your value in a variable
string a = Convert.ToString(selectedRow.Cells["columnName"].Value);
//where columnName is the name of the column you want the value printed of...
}
}