[SQL] GetSchemaTable ()를 사용하여에만 열 이름을 검색하는
SQLGetSchemaTable ()를 사용하여에만 열 이름을 검색하는
GetSchemaTable는 ()는 열 이름을 검색하는 데 사용하는 것이 가능?
나는 그것이 가능하다,이 방법을 사용하여 (만) 열 이름을 검색하기 위해 노력 해왔다.
DataTable table = myReader.GetSchemaTable();
foreach (DataRow myField in table.Rows)
{
foreach (DataColumn myProperty in table.Columns)
{
fileconnectiongrid.Rows.Add(myProperty.ColumnName + " = "
+ myField[myProperty].ToString());
}
}
이 코드는 테이블 데이터의 많은 원치 않는 검색, 난 단지가 포함 된 목록이 필요합니다 열 이름! :
해결법
-
==============================
1.당신은 사용가 ExecuteReader (CommandBehavior.SchemaOnly))에 필요
당신은 사용가 ExecuteReader (CommandBehavior.SchemaOnly))에 필요
DataTable schema = null; using (var con = new SqlConnection(connection)) { using (var schemaCommand = new SqlCommand("SELECT * FROM table", con)) { con.Open(); using (var reader = schemaCommand.ExecuteReader(CommandBehavior.SchemaOnly)) { schema = reader.GetSchemaTable(); } } }
SchemaOnly :
열 이름은 각 행의 첫 번째 열이다. 나는이 경우 다른 열 ColumnOrdinal, ColumnSize가, NumericPrecision 같은 정보 그래서 당신이 reader.GetString를 사용할 수 없기 때문에에 있지만 reader.GetSchemaTable를 생략 할 수 있다고 생각하지 않습니다.
만 열 이름을 원한다면 루프가 올바르지 않습니다 :
foreach (DataRow col in schema.Rows) { Console.WriteLine("ColumnName={0}", col.Field<String>("ColumnName")); }
-
==============================
2.당신이 원하는 모든 열 이름을 표시하는 경우 아래에 코드를 변경합니다. 원래 코드는 열 이름을 표시 할뿐만 아니라 노력뿐만 아니라 아니라 실제 데이터 값을 표시하려고했다.
당신이 원하는 모든 열 이름을 표시하는 경우 아래에 코드를 변경합니다. 원래 코드는 열 이름을 표시 할뿐만 아니라 노력뿐만 아니라 아니라 실제 데이터 값을 표시하려고했다.
DataTable table = myReader.GetSchemaTable(); foreach (DataRow myField in table.Rows) { foreach (DataColumn myProperty in table.Columns) { fileconnectiongrid.Rows.Add(myProperty.ToString()); } }
-
==============================
3.이것은 당신이 문자열 []에 배치하고 당신이 좋아하는 무엇을 그들과 함께 할 수있는, 당신에게 모든 열 이름을 제공 할 것입니다.
이것은 당신이 문자열 []에 배치하고 당신이 좋아하는 무엇을 그들과 함께 할 수있는, 당신에게 모든 열 이름을 제공 할 것입니다.
foreach(var columnName in DataTable.Columns) { Console.WriteLine(columnName); }
-
==============================
4.
//Retrieve column schema into a DataTable. schemaTable = reader.GetSchemaTable(); int index = schemaTable.Columns.IndexOf("ColumnName"); DataColumn columnName = schemaTable.Columns[index]; //For each field in the table... foreach (DataRow myField in schemaTable.Rows) { String columnNameValue = myField[columnName].ToString(); Console.WriteLine("ColumnName " + columnNameValue); }
from https://stackoverflow.com/questions/12160976/using-getschematable-to-retrieve-only-column-names by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 어떻게 동시 쿼리는 MySQL 데이터베이스에서 처리? (0) | 2020.07.11 |
---|---|
[SQL] 무엇 SQL 데이터베이스는 CHECK 제약 조건에 서브 쿼리를 지원합니까? (0) | 2020.07.11 |
[SQL] 하위 쿼리를 사용하여 여러 행을 삽입 (0) | 2020.07.11 |
[SQL] 변수를 사용하여 SQL XML 속성 값을 가져옵니다 (0) | 2020.07.11 |
[SQL] 방법 최대 절전 모드 HQL에서 오라클의 REGEXP_LIKE를 사용 하는가? (0) | 2020.07.11 |