c\#데이터베이스 에 있 는 모든 표 이름 을 가 져 오 는 방법
private void GetTabels_DMO(string strServerName,string strUser,string strPWD,string strDatabase)
{
SQLDMO.SQLServer Server = new SQLDMO.SQLServerClass();
//
Server.Connect(strServerName,strUser,strPWD);
// ,
for(int i=0;i<Server.Databases.Count;i++)
{
//
if(Server.Databases.Item(i+1,"dbo").Name ==strDatabase)
{
//
SQLDMO._Database db= Server.Databases.Item(i+1,"dbo");
//
for(int j=0;j<db.Tables.Count;j++)
{
MessageBox.Show(db.Tables.Item(j+1,"dbo").Name);
}
}
}
}
2.adox adox 는 ado Extensions for DDL and Security 로 마이크로소프트 가 ADO 기술 에 대한 확장 으로 이 를 사용 하면 데이터 베 이 스 를 조작 할 수 있 는 구조 이다.이것 은 COM 구성 요소 로 앞으로 ADO.NET 에 ADOX 의 일부 기능 이 추 가 될 것 으로 예상 된다.만약 여러분 이 ADOX 의 일부 자 료 를 필요 로 한다 면,저 는 제공 할 수 있 습 니 다.다음 의 예 는 현재 데이터베이스 의 모든 표를 ADOX 로 얻 는 것 이다.
private void GetTables_ADOX()
{
//ADO
ADODB.ConnectionClass cn=new ADODB.ConnectionClass();
string ConnectionString="Provider=SQLOLEDB.1;Integrated Security=SSPI;Initial Catalog=Test;Data Source=HBXP";
cn.Open(ConnectionString,"sa","",0);
// ADOX Catalog
CatalogClass cat=new CatalogClass();
cat.ActiveConnection=cn;
for(int i=0;i<cat.Tables.Count;i++)
{
MessageBox.Show(cat.Tables[i].Name);
}
}
주의:위의 코드 에서 cat.activeConnection 은 ADO.Net 의 Connection 이 아니 라 ADO 의 Connection 이 어야 합 니 다.3.ado.net 의 oledbconnection 은 c\#에서 우 리 는 먼저 ado.net 을 사용 하여 문 제 를 해결 하 는 것 을 고려 할 것 입 니 다.방법 이 없 으 면 adox 나 sqldmo 를 사용 하여 이 문 제 를 해결 하 는 것 을 고려 할 것 입 니 다.adox 와 sqldmo 도 이 문 제 를 해결 할 수 있 지만 그들 은 come 구성 요소 이기 때문에.net 에서 사용 하 는 것 과 비.net 플랫폼 에서 차이 가 있 고 순 조 롭 지 못 합 니 다.다음 예제 에 서 는 ado.net 의 oledbconnection 방법 getoledbschematable 으로 데이터 베 이 스 를 얻 는 구 조 를 보 여 줍 니 다.msdn 에서 이 방법 에 대한 설명 을 볼 수 있 습 니 다.Public DataTable GetOleDbSchemaTable(Guid schema,object[]restrictions);매개 변수 schema OleDbSchemaGuid 의 값 중 하나 로 되 돌아 갈 구조 표를 지정 합 니 다.restrictions 제한 값 의 Object 배열 입 니 다.이 값 들 은 제한 열의 순서에 따라 응용 된다.즉,첫 번 째 제한 치 는 첫 번 째 제한 열 에 적용 되 고 두 번 째 제한 치 는 두 번 째 제한 열 에 적용 되 며 이에 따라 유추 된다.요청 한 구조 정 보 를 포함 하 는 DataTable 값 을 되 돌려 줍 니 다.더 많은 정 보 는 MSDN 을 조회 할 수 있 습 니 다.다음은 예 시 를 어떻게 실현 하 는 지 알 수 있 습 니 다.
private void GetTables_ADONET()
{
// OleDbConnection
string mailto:strConnectionString=@%22Integrated Security=SSPI;Data Source=HBXP;Initial Catalog=Test;Provider=SQLOLEDB.1";
OleDbConnection cn=new OleDbConnection(strConnectionString);
cn.Open();
// OleDbConnection GetOleDbSchemaTable
DataTable dt = cn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,new object[] {null, null, null, "TABLE"});
foreach (DataRow dr in dt.Rows)
{
MessageBox.Show((String)dr["TABLE_NAME"]);
}
}
4.정보 구조 보기 정보 구조 보 기 는 sql-92 기준 에서 정 의 된 구조 보기 로 이런 보 기 는 시스템 표 에 독립 되 어 있다.정보 구조 보기 의 가장 큰 장점 은 우리 가 시스템 표를 중요 하 게 수정 하 더 라 도 응용 프로그램 은 이 보 기 를 정상적으로 사용 하여 접근 할 수 있다 는 것 이다.아래 의 예 는 정보 구조 보 기 를 사용 하여 작업 합 니 다.
private void GetTables_INFORMATION_SCHEMA()
{
//
string strConnectionString=System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
sqlcn=new SqlConnection(strConnectionString);
sqlcn.Open();
//
SqlCommand sqlcmd=new SqlCommand("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE'",sqlcn);
SqlDataReader dr=sqlcmd.ExecuteReader();
while(dr.Read())
{
MessageBox.Show(dr.GetString(0));
}
}
5.시스템 표를 사용 합 니 다.만약 에 데이터베이스 시스템 이 sqlserver 라면 다음 과 같은 방식 으로 현재 데이터 뱅 크 의 모든 표를 얻 을 수 있 습 니 다.
private void GetTables_SystemTable()
{
//
string strConnectionString=System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
sqlcn=new SqlConnection(strConnectionString);
sqlcn.Open();
//
SqlCommand sqlcmd=new SqlCommand("SELECT OBJECT_NAME (id) FROM sysobjects WHERE xtype = 'U' AND OBJECTPROPERTY (id, 'IsMSShipped') = 0",sqlcn);
SqlDataReader dr=sqlcmd.ExecuteReader();
while(dr.Read())
{
MessageBox.Show(dr.GetString(0));
}
}
6.sqlserver 를 사용 하 는 저장 과정'sptables'다음은'성 국군'친구 가 제시 한 저장 과정 을 사용 하 는 방법 에 대한 보충 코드 입 니 다.
public void GetTables_StoredProcedure()
{
// OleDbConnection
string mailto:strConnectionString=@%22Integrated Security=SSPI;Data Source=HBXP;Initial Catalog=Test;Provider=SQLOLEDB.1";
OleDbConnection cn=new OleDbConnection(strConnectionString);
cn.Open();
//
OleDbCommand cmd=new OleDbCommand("sp_tables",cn);
cmd.CommandType=CommandType.StoredProcedure;
OleDbDataReader dr=cmd.ExecuteReader();
while(dr.Read())
{
MessageBox.Show(dr["TABLE_NAME"].ToString());
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C#Task를 사용하여 비동기식 작업을 수행하는 방법라인이 완성된 후에 이 라인을 다시 시작할 수 없습니다.반대로 조인(Join)만 결합할 수 있습니다 (프로세스가 현재 라인을 막습니다). 임무는 조합할 수 있는 것이다. 연장을 사용하여 그것들을 한데 연결시키는 것이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.