datatable
private static DataTable dt;protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string str = "select top 10 * from main";
//从数据库获取数据
dt = Model.MyHelp.help.getDT2(str);
DataTable dt1 = new DataTable();
DataTable dt2 = new DataTable();
dt2 = dt;
dt1 = dt2;
dt1.Rows.Clear();
}
}
我的需求是 只删除dt1的值 保留dt的值 但是为什么最后一句会导致dt的值也被删除
求大神帮助 或提供其他解决方法
--------------------编程问答-------------------- dt2 = dt;
dt1 = dt2;
最后的结果是dt2,dt1指向的是同一个对象dt
先弄清 C#值类型与引用类型 --------------------编程问答--------------------
dt1.dt2在栈存的是一个引用地址。只向堆中的数据都是一样的。
同意楼上 --------------------编程问答-------------------- 为什么要删除dt2???
dt1和dt2是相同的。要么都删了,要么直接在dt1操作。要dt2干嘛? --------------------编程问答--------------------
那请问怎么解决呢 我现在是需要一个和DT结构相同的datatable --------------------编程问答-------------------- DataTable dt1 = dt2.Clone();
然后循环下给这个DataTable赋值 --------------------编程问答--------------------
++
Clone --------------------编程问答-------------------- 代码从上到下执行,赋值从右到左
补充:.NET技术 , ASP.NET