【问题标题】:Column row value shows blank after adding default value to column of Data Table in C#在C#中将默认值添加到数据表的列后,列行值显示为空白
【发布时间】:2016-12-03 12:17:36
【问题描述】:

如果我在添加默认列值后添加新行,那么它会显示值,但是如果我添加,我想避免这种情况,然后我需要删除这些行,有什么方法可以处理这个

添加默认值后,为什么列 hack 显示空白值?

DataTable myDataTable = new DataTable("HackTable");
myDataTable.Columns.Add("Id"); 
myDataTable.Columns.Add("Name"); 
myDataTable.Columns.Add("Address"); 
myDataTable.Rows.Add(1, "Rahul", "Parel"); 
myDataTable.Rows.Add(2, "Ramesh", "Dadar"); 
myDataTable.Rows.Add(3, "Ravi", "Andheri"); 
DataSet dsT = new DataSet(); 
dsT.Tables.Add(myDataTable); 
dsT.Tables[0].Columns.Add("Hack").DefaultValue = 9999;

【问题讨论】:

    标签: c# datatable


    【解决方案1】:
    System.Data.DataColumn newColumn = new System.Data.DataColumn("Hack", typeof(System.Int32));
    newColumn.DefaultValue =9999;
    dsT.Tables[0].Columns.Add(newColumn);
    

    为列设置默认值,然后添加到数据表中

    【讨论】:

      【解决方案2】:
      DataSet dsT = new DataSet();
              DataTable myDataTable = new DataTable("HackTable");
              dsT.Tables.Add(myDataTable);
              myDataTable.Columns.Add("Id");
              myDataTable.Columns.Add("Name");
              myDataTable.Columns.Add("Address");
              dsT.Tables[0].Columns.Add("Hack").DefaultValue = "9999"; //<-here
              myDataTable.Rows.Add(1, "Rahul", "Parel");
              myDataTable.Rows.Add(2, "Ramesh", "Dadar");
              myDataTable.Rows.Add(3, "Ravi", "Andheri");
      

      【讨论】:

      • 这不只是狐猴答案的副本吗?
      【解决方案3】:
      DataTable myDataTable = new DataTable("HackTable");
      myDataTable.Columns.Add("Id"); 
      myDataTable.Columns.Add("Name"); 
      myDataTable.Columns.Add("Address");
      myDataTable.Columns.Add("newColumn");
      myDataTable.Columns["newColumn"].DefaultValue = "default";
      myDataTable.Rows.Add(1, "Rahul", "Parel"); 
      myDataTable.Rows.Add(2, "Ramesh", "Dadar"); 
      myDataTable.Rows.Add(3, "Ravi", "Andheri");
      
      DataSet dsT = new DataSet(); 
      dsT.Tables.Add(myDataTable);
      

      在插入数据之前,您必须为列设置默认值。

      【讨论】:

      • 我正在向 DataSet 添加 3 个 DataTable,之后我必须为每个表添加具有默认值的列,这里我不想添加任何行 bcz 数据表将包含所有数据。跨度>
      • 我知道,如果我在添加默认列值后添加新行,那么它会显示值,但是如果我添加,我想避免这种情况,然后我需要删除这些行,有没有办法处理这个
      • 根据您的问题和您分享的一段代码,我的回答为您提供了如何做到这一点的线索。然后你说DataTable 带有数据。下次再精确一点。
      • 很抱歉,但我只是在我的代码中展示了一个简单的例子,我正在处理多个表,我必须在数据集中添加这些表,作为在这里发布代码的好习惯,我已经手动添加了行和列
      • 如果DataTable自带数据,你不能在分配给DataGridView.DataSource之前添加新列吗?
      【解决方案4】:
      static void Main(string[] args)
          {
              DataTable dt = new DataTable("Sample");
              dt.Columns.Add("id");
              dt.Columns.Add("name");
              dt.Columns.Add("Add");
              dt.Rows.Add(1, "abc", "hyd");
              DataSet ds = new DataSet();
              ds.Tables.Add(dt);
      
              DataColumn newColumn = new DataColumn("Hack", typeof(System.String));
              newColumn.DefaultValue = "Your Default value";
              dt.Columns.Add(newColumn);
      
              string str = ""; 
          }
      

      See snap: IDE Visual Studio DataSet Visualizer.

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-05-12
        • 1970-01-01
        • 2014-05-07
        • 2017-10-26
        • 1970-01-01
        • 2012-08-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多