GetTableSchema给定一个SQLConnection对象,如何获取单个表的schema?前几天我正在尝试这个,我似乎能够从运行查询得到的数据集中获取模式,但是我从连接中获得的所有模式信息似乎都与可用表有关,而不是实际细节的表。我相信有一种简单的方法可以做到这一点。我认为从查询访问模式(通过GetSchemaTable)是唯一的方法。如果您对模式感兴趣,则可以运行不返回任何行的查询(select*fromtablewhere1=2)。您应该使用KeyInfoCommandBehaviour来执行源查询,否则返回的信息都不能保证是准确的):使用系统使用System.Collections.Generic;使用系统文本;使用系统数据;使用System.Data.SqlClient;使用System.Data.SqlTypes;namespaceConsoleApp{classProgram{staticvoidMain(string[]args){stringquery="SELECT*FROMtwhere1=0";stringconnectionString="初始目录=test;数据源=localhost;Trusted_Connection=Yes";数据表tblSchema;使用(SqlConnectioncnn=newSqlConnection(connectionString)){使用(SqlCommandcmd=cnn.CreateCommand()){cmd.CommandText=query;cmd.CommandType=CommandType.Text;cnn.Open();使用(SqlDataReaderrdr=cmd.ExecuteReader(CommandBehavior.KeyInfo)){tblSchema=rdr.GetSchemaTable();}cnn.Close();}}intnumColumns=tblSchema.Columns.Count;foreach(DataRowdrintblSchema.Rows){Console.WriteLine("{0}:{1}",dr["ColumnName"],dr["DataType"]);}Console.ReadLine();}}}SQLServer-查询目录视图...sysobjects、syscolumns等,如果是SQL2000或更早版本...sys.objects、sys.columns等,如果是SQL2005或更早更高版本(虽然旧视图仍然可用,但建议使用较新的视图)完整参考:http://msdn.microsoft.com/en-us/library/ms189783.aspx示例:以上为C#学习教程:获取表结构分享的所有内容,如果对你有用,需要进一步了解C#学习教程,希望大家多多关注——selectso.name,sc.*fromsys.objectsassoinnerjoinsys.columnsassconsc.object_id=so.object_idwhereso.name='some_table'本文采集自网络,不代表立场,如涉及侵权,请点击右转联系管理员删除,如需转载请注明出处:
