gpt4 book ai didi

c# - 从 SQL 数据库中读取架构名称、表名称和列名称并返回到 C# 代码

转载 作者:行者123 更新时间:2023-11-30 13:49:45 24 4
gpt4 key购买 nike

我有一个数据库(在 SQL Server 2008 SP3 中)并且需要 C# 代码中相关层次结构中的所有架构名称、表名称和列名称,我有如下 SQLElement 类:

 public class SQLElement
{
public string SchemaName { get; set; }
public string TableName { get; set; }
public string ColumnName { get; set; }
}

还有一个像这样的列表:

List<SQLElement> SQLElementCollection = new List<SQLElement>();

那么如何从数据库中读取名称并将它们添加到此列表 (SQLElementCollection) 中?

例如假设我们创建了一个这样的表:

Create Table [General].[City] (
[Id] BIGINT NOT NULL IDENTITY(1, 1),
[Title] NVARCHAR(30) NOT NULL DEFAULT (N''),
[Province_Id] BIGINT NOT NULL
)

我需要这样的列表:

[0]={SchemaName="General", TableName="City", ColumnName="Id"} 
[1]={SchemaName="General", TableName="City", ColumnName="Title"}
[2]={SchemaName="General", TableName="City", ColumnName="Province_Id"}

有人知道吗?

编辑:

下一步我们如何获取每一列的类型或相关属性?

最佳答案

我的建议是在 SQLElement 中包含另一个成员 DataType 如果您有更改权限或创建另一个具有属性名称 DataType 的类,然后继承自SQLElement,然后将数据类型名称保存到其中以备后用,并使用下面的查询获取所有信息,谢谢

SELECT t.name AS TableName,
SCHEMA_NAME(t.schema_id) AS SchemaName,
c.name AS ColumnName,
tp.name as DataType
FROM sys.tables AS t
INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID
INNER JOIN sys.types tp ON c.system_type_id = tp.system_type_id
ORDER BY TableName;

关于c# - 从 SQL 数据库中读取架构名称、表名称和列名称并返回到 C# 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8464195/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com