開発環境:
Windows10 Pro
Microsoft Visual Studio Community 2019
開発言語:
VB.NET FrameWork4.5

データテーブルはデータベースの値をそのまま取得したり、
プログラムで操作したり、かなり多用しています。(私は・・・)

取得したテーブルを使いまわすときに下記失敗をよくします。

【よくやる失敗】

Dim pTbl as New DataTable
Private Function ABC() as boolean
    try
        Dim mTbl as New DataTable
        'mTblの操作
        pTbl = mTbl
    Catch ex As Exception
        Throw ex
    End Try
End Function

その後、pTbl を操作したときmTblの値も変わってしまいます

pTbl = mTbl を pTbl = mTbl.Copy とします。
この場合は、pTblを操作してもmTblには反映されません。
また、pTbl = mTbl.Clone とした場合は、カラムはコピーされていますが、
値は値はコピーされていません。

なお、mTbl.Clearもありますが、使ったことはありません。

mTbl.Columns.Clear

mTbl.Rows.Clear

を使います。