这是我的代码。我要获取数据库中存在的所有表名和列名。现在我需要知道列的类型,例如其int或varchar或其他内容。在这方面有人可以帮助我吗?顺便说一句,这是C#。
OleDbConnection con = new OleDbConnection(connectionString);
DataTable schemaCols;
DataTable schemaTbl;
List<string> tablesnames = new List<string>();
string returnString="";
try
{
con.Open();
object[] objArrRestrict;
objArrRestrict = new object[] { null, null, null, "TABLE" };
schemaTbl = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, objArrRestrict);
foreach (DataRow row in schemaTbl.Rows)
{
tablesnames.Add(row["TABLE_NAME"].ToString());
}
List<string> columnnames = new List<string>();
foreach (string str in tablesnames)
{
string selTbl = str;
//con.Open();
object[] objArrRestrictNew;
objArrRestrictNew = new object[] { null, null, selTbl, null };
//
schemaCols = con.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, objArrRestrictNew);
foreach (DataRow row in schemaCols.Rows)
{
columnnames.Add(row["COLUMN_NAME"].ToString());
}
}
}
一种方法是使用OleDbCommand.ExecuteReader读取找到的每个表的架构。
OleDbConnection con = new OleDbConnection(connectionString);
DataSet tablesFromDB = new DataSet();
DataTable schemaTbl;
try
{
// Open the connection
con.Open();
object[] objArrRestrict = new object[] { null, null, null, "TABLE" };
// Get the table names from the database we're connected to
schemaTbl = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, objArrRestrict);
// Not sure if this is correct syntax...fix it if it isn't :)
String commandText = @"SELECT * FROM {0}";
// Get each table name that we just found and get the schema for that table.
foreach (DataRow row in schemaTbl)
{
DataTable dt = new DataTable();
OleDbCommand command = new OleDbCommand(String.Format(commandText, row["TABLE_NAME"] as String), con);
dt.Load(command.ExecuteReader(CommandBehavior.SchemaOnly));
tablesFromDB.Tables.Add(dt);
}
}
这样,您可以遍历DataSet的DataTable集合并获取列名称和列字段类型。
foreach (DataTable dt in tablesFromDB)
{
foreach (DataColumn dc in dt.Columns)
{
// Do something with the column names and types here
// dc.ColumnName is the column name for the current table
// dc.DataType.ToString() is the name of the type of data in the column
}
}
这样做可能是更好的方法,但是我认为这是一个开始。
我有一个完整的数据库托管,我想把它集成到我的laravel新项目。我只知道如何更改env文件,我就是这么做的。不过有几个问题: > 使用laravel联机数据库是否需要创建类? 我应该向env文件添加什么?这个从我的env文件: DB_CONNECTION=MySQL DB_HOST=(我的服务器IP) DB_PORT=3306 DB_DATABASE=name DB_USERNAME=完成 DB
问题内容: 每当启动应用程序spring启动时,我都会收到以下错误。 申请开始失败 描述: com.base.model.AbstractDao中的现场会话需要找不到“ org.hibernate.SessionFactory”类型的Bean。 行动: 考虑在配置中定义类型为“ org.hibernate.SessionFactory”的bean。 我添加了我的应用程序的实现: POM.xml 应
我已经提到了为什么在Spring Boot期间找不到bean?和“字段需要找不到类型的bean。”使用mongodb的spring restful API出错 CustomerService只是一个接口,充当CustomerController和CustomerService实施之间的中间人,它实际上在CustomerRepository的帮助下对数据库执行操作。 我正在尝试从MYSQL数据库中检
我是一名spring boot学习者,所以我一直在尝试创建一些基本的spring boot应用程序。我试图运行开发的应用程序时出错。 我的错误是[[https://i.stack.imgur.com/oyQDi.png][1]][1] java: ItemDetails.java:[软件包名称:io.ajithan.springbootstarter.model] ItemResponse.jav
结构没有问题。spring boot可以扫描UserMapper,但不能扫描UserService。我试着给我的UserService@Mapper组件,然后它就可以被扫描了。但我不知道如何使用其他方法进行扫描。我尝试了@服务,但不起作用。
我搜索了很多stackoverflow,但没有找到解决问题的方法。当将SpringBoot应用程序作为WAR文件部署到Tomcat 8时,我发现以下错误,在本地它确实可以正常工作 有一个接口 和两个实现类 和二等舱 还有Rest服务 所以我不明白Tomcat怎么找不到像boolean这样的原始数据类型,也不明白为什么我在本地运行它时它能工作。 任何帮助都将不胜感激 问候马蒂亚斯