![](/img/trans.png)
[英]C# Winform Retrieving Formatted text from MySQL Database to Richtextbox
[英]Retrieving tablenames from database in string formatted text
我有这样的查询
@"SELECT
TABLE_NAME
AS
TABLES
FROM
INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE
CONSTRAINT_TYPE = 'PRIMARY KEY'
AND
TABLE_NAME <> 'dtProperties'
ORDER BY
TABLE_NAME";
从此查询中检索表列表时,有什么方法可以将表格形式转换为字符串格式。
通过.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();
这样的事情有帮助吗?
string[] myObjArray = new string[DataTable1.Rows.Count];
DataTable1.Rows.CopyTo(myObjArray, 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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.