我正在使用Visual Studio 2008.从SQL语句中检索元数据(表名)
我创建了Winforms应用程序,并试图从SQL语句中提取表名。
con = new SqlConnection(connString);
String queryString = "Select CUSTOMER_NAME from CUSTOMER_DETAIL";
有没有这样做的功能?
请帮助我。
我正在使用Visual Studio 2008.从SQL语句中检索元数据(表名)
我创建了Winforms应用程序,并试图从SQL语句中提取表名。
con = new SqlConnection(connString);
String queryString = "Select CUSTOMER_NAME from CUSTOMER_DETAIL";
有没有这样做的功能?
请帮助我。
这很好,你已经提到Java的ResultSetMetaData。引用该链接:
公共接口ResultSetMetaData的
的,可用于获取有关类型和ResultSet对象列 属性的信息对象。
至于C#,您可以使用DataColumn Class获取相同的信息。
DataType
DataColumn
类的属性可以用来获得(和设置)存储在列中的数据的类型,AllowDBNull
可用于获得(和设置),指示空值是否被允许在此列中的值,等等......要获得DataColumn
属性的完整列表,请按照我上面发布的链接进行操作。
示例代码(获取列数据类型):
SqlConnection con = new SqlConnection(connString);
String queryString = "Select CUSTOMER_NAME from CUSTOMER_DETAIL";
SqlCommand cmd = new SqlCommand(queryString, con);
DataTable myTable = new DataTable();
myTable.Load(cmd.ExecuteReader());
DataColumn column = myTable.Columns[0]; // zero based index of column, alternatively use column name
string typeOfColumn = column.DataType.Name; // or column.DataType.FullName to get the fully qualified name of the System.Type
Thanx @ Niko,我创建了一个方法,它给了我从简单查询(Select * from Tablename)的表名,现在我试图从Join查询 – 2012-03-13 06:58:05
@C_J检索表名,所以问题只是关于表名?因为在阅读您的评论之后,我认为'DataColumn'类是您正在寻找的那个。 – 2012-03-13 07:00:28
,我需要在SQL字符串query.that中的表名称,因为我想在CRUD中创建检索技术 – 2012-03-13 07:10:15
希望这有助于。
这是给我们的tablename只是改变SQL查询字符串的方法,连接字符串 工程用简单的查询,加入过
public static List<string> getTablenames(string connString,string QueryString)
{
SqlConnection con = new SqlConnection(connString);
con.Open();
DataTable dt = con.GetSchema("Tables");
List<string> getTableName = new List<string>();
List<string> tablenames = new List<string>();
foreach (DataRow dr in dt.Rows)
{
tablenames.Add(dr[2].ToString());
}
for (int ii = 0; ii < dt.Rows.Count; ii++)
{
string myTable = tablenames[ii];
Boolean checkMyTable = QueryString.Contains(myTable);
if (checkMyTable == true)
{
getTableName.Add(myTable);
}
}
con.Close();
return getTableName;
}
thanxx StackoverFlow
嗨@C_J,SQL查询有时可能会非常复杂,并且有多个表等,你到底想要做什么?也许更具体一些。 – joshuahealy 2012-03-13 04:45:32
在Java中有ResultSetMetaData接口是否有任何类似这个接口或类给出关于表的元数据 – 2012-03-13 04:49:51
@C_J在我的答案没有帮助的情况下,我已经重新标记了问题(添加了Java标记),我认为具有C#和Java经验的程序员将帮助您更多。我没有Java的经验,我的回答是基于我读过的([link's here])(http://docs.oracle.com/javase/1.4.2/docs/api/java/sql/ResultSetMetaData.html ))关于“ResultSetMetaData”,所以我可能会误解。 – 2012-03-13 06:54:55