我有这样的查询
@"SELECT
TABLE_NAME
AS
TABLES
FROM
INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE
CONSTRAINT_TYPE = 'PRIMARY KEY'
AND
TABLE_NAME <> 'dtProperties'
ORDER BY
TABLE_NAME";
从此查询中检索表格列表时,是否有任何方法可以将表格格式转换为字符串格式。
答案 0 :(得分:1)
通过.NET它既不是 - 那只是SSMS显示。根据之前的问题,听起来你只是在阅读本专栏时遇到困难;
也许就像:
List<string> list = new List<string>();
using(var conn = new SqlConnection(connectionString))
using (var cmd = conn.CreateCommand()) {
cmd.CommandText = @"
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE CONSTRAINT_TYPE = 'PRIMARY KEY'
AND TABLE_NAME <> 'dtProperties'
ORDER BY TABLE_NAME";
conn.Open();
using (var reader = cmd.ExecuteReader()) {
while (reader.Read()) {
list.Add(reader.GetString(0));
}
}
}
(在当地测试;工作正常)
如果你想要分隔的东西,那么也许:
string s = string.Join("|", list);
或涉及StringBuilder
的内容(本例中为换行符):
StringBuilder sb = new StringBuilder();
using(var conn = new SqlConnection(connectionString))
using (var cmd = conn.CreateCommand()) {
cmd.CommandText = @"
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE CONSTRAINT_TYPE = 'PRIMARY KEY'
AND TABLE_NAME <> 'dtProperties'
ORDER BY TABLE_NAME";
conn.Open();
using (var reader = cmd.ExecuteReader()) {
while (reader.Read()) {
sb.AppendLine(reader.GetString(0));
}
}
}
string s = sb.ToString();
答案 1 :(得分:0)
这样的事情有帮助吗?
string[] myObjArray = new string[DataTable1.Rows.Count];
DataTable1.Rows.CopyTo(myObjArray, 0);
答案 2 :(得分:0)
我不知道您对格式化表单的意思。 您可以使用以下sql语句检索包含所有表名的字符串:
declare @out varchar(max)
set @out = ''
select @out = @out + table_name + char(10) + char(13) from information_schema.table_constraints
where constraint_type = 'PRIMARY KEY'
and table_name <> 'dtProperties'
order by table_name
select @out