如何从vb.net中的datagridview中删除数据后保留数据?

时间:2013-02-26 03:11:30

标签: vb.net datagridview

我通过DataTable或DataSet填充DataGridView(grid1) 我可以删除一组选定的行,然后将它们添加到另一个未绑定的DataGridView(grid2) 当我从grid2中取出一行然后将其添加到grid1时会出现问题。

  

无法以编程方式将行添加到DataGridView的行中   控件是数据绑定时的集合。

这是因为

grid1.DataSource = myDataTable
or
grid1.DataSource = myDataSet

但是当我做的时候

grid1.DataSource = Nothing

删除grid1中的所有行。

是否有从数据源中分离datagridview但保留行?

3 个答案:

答案 0 :(得分:0)

我可以想到一个解决方案,其中我将添加另一个未绑定的DataGridView(grid3),
以编程方式将绑定的datagridview(grid1)的内容复制到grid3 然后从那里操纵它。

答案 1 :(得分:0)

我没试过这个,但看看Copy方法:

grid1.DataSource = myDataTable.Copy

MSDN说“复制此DataTable的结构和数据。” 复制它也可以解除绑定它。

答案 2 :(得分:0)

如果你有数据绑定网格,你可能根本不应该使用网格中的行。更改您设置为数据源的表,然后网格将反映新行。

<?php
// This requires https://github.com/defuse/php-encryption
// php composer.phar require defuse/php-encryption
// Note: Crypto::Encrypt() returns raw binary, so you may want to use base64_encode() and base64_decode()for storing/transmitting ciphertexts to prevent encoding bugs.
ini_set('display_errors', 1); error_reporting(E_ALL);

require ("Crypto.php");

// Do this once then store it somehow:
$key = Crypto::CreateNewRandomKey();

$message = 'We are all living in a yellow submarine';

$ciphertext = Crypto::Encrypt($message, $key);
$plaintext = Crypto::Decrypt($ciphertext, $key);


if ($ciphertext === $plaintext)
 {echo "<br><font color=green>Operation cryp - décrypt OK !!!!</font><br><br><br>$ciphertext === $plaintext<br><br>";}
else
 {echo "<br><font color=red>Operation cryp - décrypt NOK !!!!</font><br><br>$ciphertext === $plaintext<br><br>";}

?>

现在新行将显示在数据绑定网格上。您也可以通过从数据源数据表中删除行来从网格中删除行。