c# - Using ADO.Net, how do I get the database table name associated with a DataColumn? -
assume have table t1 column c1. when execute 'select c1 t1', can metadata result using datatable/datarow/datacolumn using code snippet below
namespace consoleapplication1 { internal class program { private static void main(string[] args) { sqldataadapter adapter; dataset dataset = new dataset(); using (sqlconnection connection = new sqlconnection(@"persist security info=false;trusted_connection=true;")) { sqlcommand command = new sqlcommand( @"select c1 t1 1 = 0;", connection); connection.open(); sqldatareader reader = command.executereader(); datatable schematable = reader.getschematable(); console.writeline(reader.getname(0)); //name of column foreach (datarow row in schematable.rows) { //console.writeline(row["tablename"]); foreach (datacolumn column in schematable.columns) { console.writeline(string.format("{0} = {1}", column.columnname, row[column])); } } } } } }
but value returned basetablename blank. there other methods available table 't1' associated column 'c1'?
here output of above code :
columnname = c1 columnordinal = 0 columnsize = 100 numericprecision = 255 numericscale = 255 isunique = false iskey = baseservername = basecatalogname = basecolumnname = c1 baseschemaname = basetablename = datatype = system.string allowdbnull = true providertype = 3 isaliased = isexpression = isidentity = false isautoincrement = false isrowversion = false ishidden = islong = false isreadonly = false providerspecificdatatype = system.data.sqltypes.sqlstring datatypename = char xmlschemacollectiondatabase = xmlschemacollectionowningschema = xmlschemacollectionname = udtassemblyqualifiedname = nonversionedprovidertype = 3 iscolumnset = false
you can table name using
schematable.tablename
following links provide information looking for:
https://msdn.microsoft.com/en-us/library/system.data.datatable.tablename(v=vs.110).aspx
https://msdn.microsoft.com/en-us/library/system.data.datarow.table(v=vs.110).aspx
Comments
Post a Comment