从代码中检索表名和列名

时间:2013-09-10 03:10:12

标签: mysql database vb.net sqldatatypes tablecolumn

我需要检索表名和所有后续列,以便手动添加到表中,从我得到的代码中给出。我可以很容易地收集所有的表名(我相信),但我无法确切地看到我正在寻找列的明智之处。我需要帮助知道列数据和数据类型(旧的mysql数据库丢失了表)

useroptions.vb :http://pastebin.com/84SxTzfz
useroptionscommon.vb :http://pastebin.com/2rxf3e2y
Connections.vb :http://pastebin.com/CpWqt2m8
userpersistence.vb :http://pastebin.com/TaAex24Q
streamprocessor.vb :http://pastebin.com/Tazr1s8p
serverpersistance.vb :http://pastebin.com/qvnCN2PY
frontpagehub.vb :http://pastebin.com/FYyLH4qP

即使有人可以告诉我要找出我需要添加的表,列的列和数据类型。我将不胜感激。 我花了几天时间试图重建数据库并找到解决我需要的所有方法的方法,我已经开始运行了一些东西,但特别是我遇到了麻烦。

1 个答案:

答案 0 :(得分:0)

搜索关键字INSERT,UPDATE,DELETE和SELECT以访问程序文件中的SQL语句,以找出表和表的列名。您可以从提供给SQL语句中使用的参数的值中获取最接近的SQL数据类型信息。您可能会了解基于WHERE子句中的列可能是什么主键,但它需要您对列的预期用途的判断和熟悉程度将某些列确定为主键,因为非主列也可以在WHERE子句中。

例如,我在文件useroptions.vb中看到以下代码:

                Dim Connection As New MySqlConnection(Utils.connectionString) : Connection.Open()
                Dim Command As New MySqlCommand("UPDATE custom_user_data SET `" + name + "`=@value WHERE userID=@userID;", Connection)
                Command.Parameters.AddWithValue("@value", value)
                Command.Parameters.Add("@userID", MySqlDbType.Int32).Value = userID
                Command.ExecuteNonQuery()

在这里您可以找到UPDATE语句。第一个标识符custom_user_data是表的名称。变量名包含一个您必须弄清楚的列名。 WHERE子句包含列名userID。您可以从参数中获取一些SQL数据类型信息。不幸的是,我不是VB程序员,因此我不能提供更多信息。正如有人指出的那样,几乎不可能从程序中获得各种约束(主键,外键,检查约束),可空性信息,触发器,任何存储过程等。祝你好运。