ÀÌ ¹®¼¿¡¼´Â ado¿¡¼
DataReader °³Ã¼ÀÇ
GetSchemaTable ¸Þ¼µå¸¦ »ç¿ë ÇÏ´Â ¹æ¹ýÀ» º¸¿© ÁÝ´Ï´Ù.NET ¿ ½ºÅ°¸¶ Á¤º¸¸¦ °Ë»öÇÒ ¼ö ÀÖ½À´Ï´Ù. ´Ù¸¥
¿ ½ºÅ°¸¶´Â ¶ÇÇÑ ÇÊµå ¼Ó¼ºÀÌÀÔ´Ï´Ù. ¿ ½ºÅ°¸¶ Á¤º¸
¿¿¡ ´ë ÇÑ ´ÙÀ½ Á¤º¸¸¦ Æ÷ÇÔ ÇÕ´Ï´Ù.
- À̸§
- µ¥ÀÌÅÍ Çü½Ä
- Å©±â
- ¿¿¡¼ ±âº» Ű Çʵå ÀÎÁö ¿©ºÎ
- ¿¿¡ ÀÏ·Ã ¹øÈ£ (AutoIncrement) ¿©ºÎ
Çʵå
GetSchemaTable ¸Þ¼µå´Â
DataReaderÀÇ ¿ ½ºÅ°¸¶¸¦ Æ÷ÇÔ ÇÏ´Â
DataTable ¼Ó¼ºÀ» ¹Ýȯ ÇÕ´Ï´Ù.
DataTable Àº °á°ú ÁýÇÕÀÇ °¢ Çʵ忡 ´ëÇØ ÇÑ ÇàÀ» Æ÷ÇÔÇÕ´Ï´Ù. °¢ ¿
°á°ú ÁýÇÕ¿¡ ÀÖ´Â ÇʵåÀÇ ¼Ó¼º¿¡ ¸ÅÇÎ.
DataTable ¿ÀÇ
ColumnName ¼Ó¼ºÀº
ColumnName,
DataType,
ColumnSize,
IsKeyColumn¶Ç´Â
IsAutoIncrement ¼Ó¼º°ú °°Àº ÇÊµå ¼Ó¼ºÀÇ À̸§ÀÔ´Ï´Ù.
DataTable ¿ÀÇ °ªÀ»
FirstNameColumnName ¼Ó¼º °ª°ú °°Àº ÇʵåÀÇ ¼Ó¼º °ªÀÌÀÔ´Ï´Ù.
Âü°í ÇÊµå ¿©ºÎ¸¦ Æ÷ÇÔ ÇÏ´Â ±âº» Ű Á¤º¸¸¦ °¡Á®¿À·Á¸é
ºÎºÐ ±âº» Ű ¹×
ÀÚµ¿ ÁõºÐ Çʵå ÀÎÁö ¿©ºÎ,
DataReaderCommandBehavior °ª
CommandBehavior.KeyInfoÀ» ¼³Á¤ ÇØ¾ß ÇÕ´Ï´Ù.
µÎ OLE DB¿¡´Â
GetSchemaTable ¸Þ¼µå¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.NET °ø±ÞÀÚ ¶Ç´Â ÇØ´ç SQLÀÔ´Ï´Ù.NET
°ø±ÞÀÚÀÔ´Ï´Ù.
OleDbDataReader.GetSchemaTable ¸Þ¼µå´Â OLE DB
IColumnsRowset::GetColumnsRowset ¸Þ¼µå¿¡ ¸ÅÇÎÇÕ´Ï´Ù.
SqlDataReader.GetSchemaTable ¸Þ¼µå´Â OLE DB °ø±ÞÀÚ °èÃþÀ» »ç¿ë ÇÏÁö ¾Ê½À´Ï´Ù.
¸Þ¸ðÀÇ
DataReaderGetSchemaTable ¸Þ¼µå¸¦ ¸í½ÃÀûÀ¸·Î »ç¿ë ÇÏÁö ¾Ê´Â °æ¿ì ¿ ½ºÅ°¸¶¸¦ ¹Ýȯ ÇÏÁö ¾Ê½À´Ï´Ù. ¶ÇÇÑ
GetSchemaTable À» »ç¿ë ÇÏ ¿© ¿ ½ºÅ°¸¶¸¦ °Ë»ö ÇÏ´Â °æ¿ì
DataReader¸¦ ¾÷µ¥ÀÌÆ®ÇÒ ¼ö ¾ø½À´Ï´Ù.
DataReader ´Â Ç×»ó ÀüÁø Àü¿ë, Àбâ Àü¿ë µ¥ÀÌÅÍ ½ºÆ®¸²À» °Ë»öÀº
µ¥ÀÌÅͺ£À̽ºÀÔ´Ï´Ù.
GetSchemaTable ¸Þ¼µå¸¦ »ç¿ë ÇÏ´Â °æ¿ì
- SqlConnection °³Ã¼´Â SQL Server ½ºÅ°¸¶ Á¤º¸ °Ë»öÀ» Áö¿ø ÇÏÁö ¾Ê½À´Ï´Ù.
OleDbConnection °³Ã¼ÀÇ GetOleDbSchemaTable ¸Þ¼µå¸¦ À¯»çÇÑ ¹æ¹ý¿¡¼. SqlDataReader Ŭ·¡½ºÀÇ GetSchemaTable ¸Þ¼µå¸¦ ¿ ½ºÅ°¸¶¸¦ ¾òÀ» ¼ö ÀÖ´Â °£´ÜÇÑ ¹æ¹ýÀ» Á¦°ø ÇÕ´Ï´Ù.
SQL Server Á¤º¸¸¦ Á¦°ø ÇÕ´Ï´Ù.
- OleDbConnection °³Ã¼ÀÇ GetOleDbSchemaTable ¸Þ¼µå µ¥ÀÌÅͺ£À̽º, Å×ÀÌºí ¹× ¿ ½ºÅ°¸¶ Á¤º¸¸¦ ¹ÝȯÇÒ ¼ö ÀÖÁö¸¸,
GetSchemaTable ¸Þ¼µå´Â DataReader °³Ã¼ÀÇ ¿¸¸ °Ë»ö ÇÏ´Â °æ¿ì »ç¿ë Çϱ⠽±°Ô ÀÓÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù.
½ºÅ°¸¶ Á¤º¸ÀÔ´Ï´Ù.
- GetSchemaTable ¸Þ¼µå¸¦ »ç¿ë ÇÏ ¿© ¿ À̸§ ¹× ´Ù¸¥ »ç¿ëÀÚ¸¦ ÁöÁ¤ ÇÏ´Â µ¿¾È ±âÁ¸ DataTable ¼Ó¼ºÀÇ ½ºÅ°¸¶¸¦ ±â¹ÝÀ¸·Î »õ µ¥ÀÌÅÍ Å×À̺í À» ¸¸µé·Á¸é
¿ Ư¼ºÀÔ´Ï´Ù. GetSchemaTable À» »ç¿ë ÇÏ ¿© »õ Å×À̺í Á¤ÀÇ ÇÏ´Â ¹æ¹ýÀ» º¸¿© ÁÖ´Â »ùÇà ÄÚµå´Â "Visual Studio »ùÇÃ:: Fitch¿¡ ÂüÁ¶ ÇϽʽÿÀ.
and Mather 7.0 ½ÇÇà SQL Äõ¸®"Ç׸ñ¿¡´Â Microsoft Visual Studio.NET ¿Â¶óÀÎ
µµ¿ò¸».
OLE DB ½ºÅ°¸¶ ¿À» °Ë»ö ÇÕ´Ï´Ù.NET °ø±ÞÀÚ
ÀÌ »ùÇÿ¡¼´Â ¿ (Çʵ忡 ´ë ÇÑ ½ºÅ°¸¶ Á¤º¸°¡ ³ª¿
¼Ó¼º) SQL Server NorthwindÀÇ Á÷¿ø Å×À̺í
µ¥ÀÌÅͺ£À̽ºÀÔ´Ï´Ù.
OLE DB¸¦ »ç¿ë ÇÏ´Â °æ¿ì´Â noteÀÔ´Ï´Ù.NET °ø±ÞÀÚ »ç¿ë
OleDbDataReader °³Ã¼ÀÇ
GetSchemaTable ¸Þ¼µå.
- Visual Studio ½ÃÀÛ ÇÕ´Ï´Ù.NetÀ» ½ÃÀÛ ÇÏ °í´Â »õ Visual C# ¸¸µì´Ï´Ù
ÄÜ¼Ö ÀÀ¿ë ÇÁ·Î±×·¥ ÇÁ·ÎÁ§Æ®¸¦ ¸¸µì´Ï´Ù. Class1.cs ±âº»ÀûÀ¸·Î ¸¸µé¾îÁý´Ï´Ù.
- Class1¿¡ ´ë ÇÑ ÄÚµå âÀ» ¿±´Ï´Ù. ´ÙÀ½ Äڵ带 ºÙ¿© ³Ö½À´Ï´Ù.
³×ÀÓ ½ºÆäÀ̽º ¼±¾ð À§¿¡ ÄÚµå âÀÇ ¸Ç.
using System.Data;
using System.Data.OleDb;
- ÄÚµå â¿¡¼ ´ÙÀ½ Äڵ带 Main ÇÔ¼ö¿¡ ºÙ¿©³Ö½À´Ï´Ù.
OleDbConnection cn = new OleDbConnection();
OleDbCommand cmd = new OleDbCommand();
DataTable schemaTable;
OleDbDataReader myReader;
//Open a connection to the SQL Server Northwind database.
cn.ConnectionString = "Provider=SQLOLEDB;Data Source=server;User ID=login;
Password=password;Initial Catalog=Northwind";
cn.Open();
//Retrieve records from the Employees table into a DataReader.
cmd.Connection = cn;
cmd.CommandText = "SELECT * FROM Employees";
myReader = cmd.ExecuteReader(CommandBehavior.KeyInfo);
//Retrieve column schema into a DataTable.
schemaTable = myReader.GetSchemaTable();
//For each field in the table...
foreach (DataRow myField in schemaTable.Rows){
//For each property of the field...
foreach (DataColumn myProperty in schemaTable.Columns) {
//Display the field name and value.
Console.WriteLine(myProperty.ColumnName + " = " + myField[myProperty].ToString());
}
Console.WriteLine();
//Pause.
Console.ReadLine();
}
//Always close the DataReader and connection.
myReader.Close();
cn.Close();
- SQL Server Á¦´ë·Î ¿¬°á ÇÏ·Á¸é ConnectionString ¼Ó¼ºÀÇ ¸Å°³ º¯¼ö¸¦ ¼öÁ¤ ÇÕ´Ï´Ù.
ÄÄÇ»ÅÍÀÔ´Ï´Ù.
- ÄÄÆÄÀÏ ÇÏ °í ÇÁ·ÎÁ§Æ®¸¦ ½ÇÇà ÇÏ·Á¸é F5 ۸¦ ´©¸¨´Ï´Ù. °øÁö
°¢ ÇʵåÀÇ µî·Ï Á¤º¸´Â ÄÜ¼Ö Ã¢¿¡ ³ª¿ µË´Ï´Ù.
- ¸ñ·ÏÀ» ½ºÅ©·ÑÇÏ¿© ÄܼÖÀ» Á¾·á ÇÏ·Á¸é ENTER ۸¦ ´©¸¨´Ï´Ù
ÀÀ¿ë ÇÁ·Î±×·¥ ¹× ÅëÇÕ °³¹ß ȯ°æÀ¸·Î µ¹¾Æ°¡±â
(IDE)ÀÔ´Ï´Ù.
¿ ½ºÅ°¸¶´Â SQL °Ë»ö ÇÕ´Ï´Ù.NET °ø±ÞÀÚ
ÀÌ »ùÇÿ¡¼´Â ¿ (Çʵ忡 ´ë ÇÑ ½ºÅ°¸¶ Á¤º¸°¡ ³ª¿
¼Ó¼º) SQL Server NorthwindÀÇ Á÷¿ø Å×À̺í
µ¥ÀÌÅͺ£À̽ºÀÔ´Ï´Ù.
SQL¸¦ »ç¿ë ÇÏ´Â °æ¿ì´Â noteÀÔ´Ï´Ù.NET °ø±ÞÀÚ
SqlDataReader °³Ã¼ÀÇ
GetSchemaTable ¸Þ¼µå¸¦ »ç¿ë ÇÕ´Ï´Ù.
- Visual Studio ½ÃÀÛ ÇÕ´Ï´Ù.NetÀ» ½ÃÀÛ ÇÏ °í´Â »õ Visual C# ¸¸µé±â
ÄÜ¼Ö ÀÀ¿ë ÇÁ·Î±×·¥ ÇÁ·ÎÁ§Æ®¸¦ ¸¸µì´Ï´Ù. Class1.cs ±âº»ÀûÀ¸·Î ¸¸µé¾îÁý´Ï´Ù.
- Class1¿¡ ´ë ÇÑ ÄÚµå âÀ» ¿±´Ï´Ù. ´ÙÀ½ Äڵ带 ºÙ¿© ³Ö½À´Ï´Ù.
³×ÀÓ ½ºÆäÀ̽º ¼±¾ð À§¿¡ ÄÚµå âÀÇ ¸Ç.
using System.Data;
using System.Data.SqlClient;
- ÄÚµå â¿¡¼ ´ÙÀ½ Äڵ带 Main ÇÔ¼ö¿¡ ºÙ¿©³Ö½À´Ï´Ù.
SqlConnection cn = new SqlConnection();
SqlCommand cmd = new SqlCommand();
DataTable schemaTable;
SqlDataReader myReader;
//Open a connection to the SQL Server Northwind database.
cn.ConnectionString = "Data Source=server;User ID=login;
Password=password;Initial Catalog=Northwind";
cn.Open();
//Retrieve records from the Employees table into a DataReader.
cmd.Connection = cn;
cmd.CommandText = "SELECT * FROM Employees";
myReader = cmd.ExecuteReader(CommandBehavior.KeyInfo);
//Retrieve column schema into a DataTable.
schemaTable = myReader.GetSchemaTable();
//For each field in the table...
foreach (DataRow myField in schemaTable.Rows){
//For each property of the field...
foreach (DataColumn myProperty in schemaTable.Columns) {
//Display the field name and value.
Console.WriteLine(myProperty.ColumnName + " = " + myField[myProperty].ToString());
}
Console.WriteLine();
//Pause.
Console.ReadLine();
}
//Always close the DataReader and connection.
myReader.Close();
cn.Close();
- SQL Server Á¦´ë·Î ¿¬°á ÇÏ·Á¸é ConnectionString ¼Ó¼ºÀÇ ¸Å°³ º¯¼ö¸¦ ¼öÁ¤ ÇÕ´Ï´Ù.
ÄÄÇ»ÅÍÀÔ´Ï´Ù.
- F5 ۸¦ ´·¯ ÇÁ·ÎÁ§Æ®¸¦ ½ÇÇà ÇÏ °í ÄÄÆÄÀÏÇÒ ¼ö ÀÖ½À´Ï´Ù. »õ ¿À»
°¢ ÇʵåÀÇ ¼Ó¼ºÀÌ ÄÜ¼Ö Ã¢¿¡ ³ª¿ µË´Ï´Ù.
- ¸ñ·ÏÀ» ½ºÅ©·ÑÇÏ¿© ÄܼÖÀ» Á¾·á ÇÏ·Á¸é ENTER ۸¦ ´©¸¨´Ï´Ù
ÀÀ¿ë ÇÁ·Î±×·¥ ¹× IDE·Î ¹Ýȯ ÇÕ´Ï´Ù.
DataReader ¹×
GetSchemaTable ¸Þ¼µå¿¡ ´ë ÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº Visual Studio ´ÙÀ½ Ç׸ñÀ» ÂüÁ¶ ÇϽʽÿÀ.NET ¿Â¶óÀÎ
µµ¿ò¸»À» ÂüÁ¶ ÇϽʽÿÀ.
OleDbConnection °³Ã¼ÀÇ
GetOleDbSchemaTable ¸Þ¼µå¸¦ »ç¿ë ÇÏ ¿© ½ºÅ°¸¶ Á¤º¸¸¦ °Ë»ö ÇÏ´Â ¹æ¹ý¿¡ ´ë ÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº ¹®¼ ¹øÈ£¸¦ Ŭ¸¯ ÇÕ´Ï´Ù.
¾Æ·¡ÀÇ Microsoft ±â¼ú ÀÚ·áÀÇ ´ÙÀ½ ¹®¼¸¦ ÂüÁ¶ ÇÕ´Ï´Ù.
309681
(http://support.microsoft.com/kb/309681/EN-US/
)
Getoledbschematable°ú Visual C#¸¦ »ç¿ë ÇÏ ¿© ½ºÅ°¸¶ Á¤º¸¸¦ °Ë»ö ÇÏ´Â ¹æ¹ýNET
±â¼ú ÀÚ·á: 310107 - ¸¶Áö¸· °ËÅä: 2012³â 6¿ù 12ÀÏ È¿äÀÏ - ¼öÁ¤: 1.0
º» ¹®¼ÀÇ Á¤º¸´Â ´ÙÀ½ÀÇ Á¦Ç°¿¡ Àû¿ëµË´Ï´Ù.
- Microsoft ADO.NET 1.1
- Microsoft Visual C# .NET 2003 Standard Edition
- Microsoft Visual C# .NET 2002 Standard Edition
| kbdatabase kbhowtomaster kbsqlclient kbsystemdata kbmt KB310107 KbMtko |
±â°è ¹ø¿ªµÈ ¹®¼Áß¿ä: º» ¹®¼´Â Àü¹® ¹ø¿ª°¡°¡ ¹ø¿ªÇÑ °ÍÀÌ ¾Æ´Ï¶ó Microsoft ±â°è ¹ø¿ª ¼ÒÇÁÆ®¿þ¾î·Î ¹ø¿ªÇÑ °ÍÀÔ´Ï´Ù. Microsoft´Â ¹ø¿ª°¡°¡ ¹ø¿ªÇÑ ¹®¼ ¹× ±â°è ¹ø¿ªµÈ ¹®¼¸¦ ¸ðµÎ Á¦°øÇϹǷΠMicrosoft ±â¼ú ÀÚ·á¿¡ ÀÖ´Â ¸ðµç ¹®¼¸¦ Çѱ۷ΠÁ¢ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª ±â°è ¹ø¿ª ¹®¼°¡ Ç×»ó ¿Ïº®ÇÑ °ÍÀº ¾Æ´Õ´Ï´Ù. µû¶ó¼ ±â°è ¹ø¿ª ¹®¼¿¡´Â ¸¶Ä¡ ¿Ü±¹ÀÎÀÌ Çѱ¹¾î·Î ¸»ÇÒ ¶§ ½Ç¼ö¸¦ ÇÏ´Â °Íó·³ ¾îÈÖ, ±¸¹® ¶Ç´Â ¹®¹ý¿¡ ¿À·ù°¡ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù. Microsoft´Â ³»¿ë»óÀÇ ¿À¿ª ¶Ç´Â Microsoft °í°´ÀÌ ÀÌ·¯ÇÑ ¿À¿ªÀ» »ç¿ëÇÔÀ¸·Î½á ¹ß»ýÇÏ´Â ºÎ Á¤È®¼º, ¿À·ù ¶Ç´Â ¼ÕÇØ¿¡ ´ëÇØ Ã¥ÀÓÀ» ÁöÁö ¾Ê½À´Ï´Ù. Microsoft´Â ÀÌ·¯ÇÑ ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇØ ±â°è ¹ø¿ª ¼ÒÇÁÆ®¿þ¾î¸¦ ÀÚÁÖ ¾÷µ¥ÀÌÆ®Çϰí ÀÖ½À´Ï´Ù.
ÀÌ ¹®¼ÀÇ ¿µ¹® ¹öÀü º¸±â:
310107
(http://support.microsoft.com/kb/310107/en-us/
)