打印数据库表的所有列,而无需在打印语句中写入每个列的名称

时间:2019-03-14 23:08:48

标签: c# .net sql-server console

我在SQL Server中有一张学生表,我想执行类似

的查询
SELECT * 
FROM tbl_students;

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

我在以下声明中写道

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

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

1 个答案:

答案 0 :(得分:0)

可以。假设您使用的是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或类似内容。

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