【问题标题】:Print all the columns of a DB table, without writing each column name in the print statement打印一个 DB 表的所有列,而不在打印语句中写入每个列名
【发布时间】:2019-03-14 23:08:48
【问题描述】:

我在 SQL Server 中有一个学生表,我想执行类似的查询

SELECT * 
FROM tbl_students;

但我不想在C#中写每个列号getValue(0)getValue(1)来得到结果,

我在下面的声明中写道

Console.WriteLine("{0},\t{1}", sqlDReader.GetValue(0), sqlDReader.GetValue(1));

我只是想获取所有列的值而不写每个列的索引号,我们不能简单地获取完整记录的字符串,最好中间有制表符的空格吗?

【问题讨论】:

标签: c# .net sql-server console


【解决方案1】:

你可以。假设您使用的是 c#,这样的事情会起作用

如果你知道列数:

string completeLine = "";
for(int i = 0 ; i < numCols ; i++)
{
    completeLine += sqlDReader.GetValue(0).ToString();
    if (i < numCols - 1)
        completeLine += " ";
}
Console.WriteLine (completeLine);

这假定所有列都可以转换为字符串。还假设您知道列数。有很多更复杂的方法可以做到这一点。

要获取角色数量,您可以获取 .Columns.Count 或类似的。

然后有一个外循环,每一行。注意:不要尝试在整个表上进行这种类型的字符串连接,因为它会很慢(因为字符串实际上是不可更改的)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多