代码:
public DataTable DataTable2()
        {
            DataTable dt = new DataTable();
            dt.TableName = "Examples";            //添加列
            DataColumn dtcolCol1 = new DataColumn("Col1", typeof(System.String));
            dt.Columns.Add(dtcolCol1);            //创建还有1个字段的主键
            DataColumn[] arrPrimyKeys = new DataColumn[1];
            arrPrimyKeys[0] = dtcolCol1;
            dt.PrimaryKey = arrPrimyKeys;
            //加入数据行
            DataRow dtrow = dt.NewRow();
            dtrow[0] = "a";
            dt.Rows.Add(dtrow);
            dtrow[0] = "b";
            return dt;
        }为什么最后的dt 中返回的数据是 b 而不是 a 呢????

解决方案 »

  1.   

    dtrow[0] = "a";
                dt.Rows.Add(dtrow);
                dtrow[0] = "b";的确是b。另一帖已经答过了。。= =;
      

  2.   

    那是应为你没有搞清除,值类型的变量赋值和引用变量赋值的关系,
     DataRow dtrow = dt.NewRow();
                dtrow[0] = "a";
                dt.Rows.Add(dtrow);
                dtrow[0] = "b";
    在此处dtrow是一个引用类型的变量,dtrow[0] = "a";dtrow[0] = "b";实际上都是对一个变量进行赋值,所以返回的当然是b了
      

  3.   

    //加入数据行
                DataRow dtrow = dt.NewRow();
                dtrow[0] = "a";
                dt.Rows.Add(dtrow);
                //dtrow[0] = "b"; =>把这句删除就是a了