C# DataTable의 일반적인 사용 방법 설명
8522 단어 Datatable
1. DataTable 소개
(1) 구조 함수 DataTable()는 파라미터가 없는 DataTable 클래스의 새로운 인스턴스를 초기화합니다.DataTable (string tableName) 은 지정한 테이블 이름으로 DataTable 클래스의 새로운 예를 초기화합니다.DataTable (string tableName,string tableNamespace) 은 지정한 테이블 이름과 이름 공간으로 DataTable 클래스의 새로운 예를 초기화합니다.(2) 일반 속성 CaseSensitive 표시기의 문자열 비교는 대소문자를 구분하는지 여부를 나타냅니다.ChildRelations는 이 DataTable의 하위 관계 집합을 가져옵니다.Columns는 이 테이블에 속하는 열의 집합을 가져옵니다.Constraints는 이 테이블에서 유지하는 제약의 집합을 가져옵니다.DataSet 이 테이블이 속한 DataSet을 가져옵니다.DefaultView는 필터 뷰나 커서 위치를 포함하는 테이블의 사용자 정의 뷰를 가져옵니다.HasErrors는 테이블이 속한 DataSet의 모든 행에 오류가 있는지 여부를 나타내는 값을 가져옵니다.MinimumCapacity에서 테이블의 초기 시작 크기를 가져오거나 설정합니다.이 표의 줄의 초기 시작 크기입니다.기본값은 50입니다.Rows는 이 테이블에 속하는 줄의 집합을 가져옵니다.TableName에서 DataTable의 이름을 가져오거나 설정합니다.
(3) 일반적인 방법인 AcceptChanges()는 AcceptChanges()를 마지막으로 호출한 이후 테이블에 적용된 모든 변경 사항을 커밋합니다.BeginInit()가 창에서 사용하거나 다른 구성 요소에서 사용하는 DataTable를 초기화하기 시작합니다.초기화는 실행할 때 발생합니다.
Clear() 모든 데이터의 DataTable를 지웁니다.Clone() 모든 DataTable 아키텍처와 구속을 포함하여 DataTable 구조를 클론합니다.EndInit () 는 창에서 사용하거나 다른 구성 요소에서 사용하는 DataTable 초기화를 끝냅니다.초기화는 실행할 때 발생합니다.ImportRow(DataRow row)는 DataRow를 DataTable에 복사하여 속성 설정과 초기 값 및 현재 값을 유지합니다.Merge(DataTable table)는 지정된 DataTable를 현재 DataTable과 결합합니다.NewRow()는 테이블과 동일한 아키텍처를 가진 새 DataRow를 만듭니다.2. DataTable 사용 방법
(1)Create a DataTable
DataTable dt = new DataTable("Table_AX");
(2)Add columns for DataTable
//Method 1
dt.Columns.Add("column0", System.Type.GetType("System.String"));
//Method 2
DataColumn dc = new DataColumn("column1", System.Type.GetType("System.Boolean"));
dt.Columns.Add(dc);
(3)Add rows for DataTable
//Initialize the row
DataRow dr = dt.NewRow();
dr["column0"] = "AX";
dr["column1"] = true;
dt.Rows.Add(dr);
//Doesn't initialize the row
DataRow dr1 = dt.NewRow();
dt.Rows.Add(dr1);
(4)Select row
//Search the second row , is null select
DataRow[] drs = dt.Select("column1 is null");
DataRow[] drss = dt.Select("column0 = 'AX'");
(5)Copy DataTable include data
DataTable dtNew = dt.Copy();
(6)Copy DataTable only scheme
DataTable dtOnlyScheme = dt.Clone();
(7)Operate one row
// dt
//Method 1
DataRow drOperate = dt.Rows[0];
drOperate["column0"] = "AXzhz";
drOperate["column1"] = false;
//Method 2
drOperate[0] = "AXzhz";
drOperate[1] = false;
//Method 3
dt.Rows[0]["column0"] = "AXzhz";
dt.Rows[0]["column1"] = false;
//Method 4
dt.Rows[0][0] = "AXzhz";
dt.Rows[0][1] = false;
(8)Evaluate another DataTable's row to current Datatable
dtOnlyScheme.Rows.Add(dt.Rows[0].ItemArray);
(9)Convert to string
System.IO.StringWriter sw = new System.IO.StringWriter();
System.Xml.XmlTextWriter xw = new System.Xml.XmlTextWriter(sw);
dt.WriteXml(xw);
string s = sw.ToString();
(10)Filter DataTable
dt.DefaultView.RowFilter = "column1 <> true";
dt.DefaultView.RowFilter = "column1 = true";
(11)Sort row
dt.DefaultView.Sort = "ID ,Name ASC";
dt=dt.DefaultView.ToTable();
(12)Bind DataTable
// DefaultView
gvTestDataTable.DataSource = dt;
gvTestDataTable.DataBind();
(13)judge the DataTable’s Column name is a string
// DataTable
dtInfo.Columns.Contains("AX");
(14)DataTable convert to XML and XML convert to DataTable
protected void Page_Load(object sender, EventArgs e)
{
DataTable dt_AX = new DataTable();
//dt_AX.Columns.Add("Sex", typeof(System.Boolean));
//DataRow dr = dt_AX.NewRow();
//dr["Sex"] = true;
//dt_AX.Rows.Add(dr);
string xml=ConvertBetweenDataTableAndXML_AX(dt_AX);
DataTable dt = ConvertBetweenDataTableAndXML_AX(xml);
}
public string ConvertBetweenDataTableAndXML_AX(DataTable dtNeedCoveret)
{
System.IO.TextWriter tw = new System.IO.StringWriter();
//if TableName is empty, WriteXml() will throw Exception.
dtNeedCoveret.TableName=dtNeedCoveret.TableName.Length==0?"Table_AX":dtNeedCoveret.TableName;
dtNeedCoveret.WriteXml(tw);
dtNeedCoveret.WriteXmlSchema(tw);
return tw.ToString();
}
public DataTable ConvertBetweenDataTableAndXML_AX(string xml)
{
System.IO.TextReader trDataTable = new System.IO.StringReader(xml.Substring(0, xml.IndexOf("<?xml")));
System.IO.TextReader trSchema = new System.IO.StringReader(xml.Substring(xml.IndexOf("<?xml")));
DataTable dtReturn = new DataTable();
dtReturn.ReadXmlSchema(trSchema);
dtReturn.ReadXml(trDataTable);
return dtReturn;
}
(15) DataTable에서 조회를 실행하여 DataTable로 되돌아오기;
방법 1:
// <summary>
// DataTable DataTable
// </summary>
// dt DataTable
// condition
DataTable newdt = new DataTable();
newdt = dt.Clone(); // dt , dt , ;
DataRow[] rows = dt.Select(conditions); // dt ;
foreach (DataRow row in rows) // dt ;
{
newdt.Rows.Add(row.ItemArray);
}
방법2:
DataTable newdt = new DataTable();
newdt=dt.Clone();
DataRow[] dr = dt.Select(condition);
for(int i=0;i<dr.Length;i++)
{
newdt.ImportRow((DataRow)dr[i]);
}
방법 3:
DataTable newdt = new DataTable();
dt.DefaultView.RowFilter = "conditions";
newdt =dt.DefaultView.ToTable();
(16) DataTable에서 행을 제거합니다.
DataTable에서 행을 삭제하는 세 가지 방법: (DataTable.Rows.Remove(DataRow dr), DataTable.Rows.RemoveAt(i)、DataRow.Delete())
DataTable의 줄을 삭제하려면 색인 문제에 주의해야 한다. 일반적으로 두 가지 방법이 있다. 1] for로 순환할 때 계수기의 초기 값은 표 길이이고 순환을 줄이는 것이다.DataTable.Rows.RemoveAt(i)는 주의해야 합니다.2] DataTable의 Select 방법으로 이 방법의 매개 변수는 문자열 필터 3] Delete () 다음에 데이터테이블이 필요합니다.Delete ()는 해당 열의 상태를 삭제로 표시하고 데이터테이블을 통해 삭제할 수 있기 때문에 AccepteChanges () 방법은 완전한 삭제를 확인합니다.RejectChanges()가 롤백되어 행이 제거됩니다.여러 줄을 삭제하려면 Delete()를 연속으로 사용하고 AccepteChanges() 방법으로 삭제를 확인할 수 있습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
yui--datatable 행 추가 형식텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.