求助:编写C#程序从SQL Server数据库读取表中数据,显示格式无法对齐

Augus6 2012-05-08 07:41:27
SQL Server中有自建的数据库Test,其中有两张表Student和Grade,在VS中编写C#程序,用联合查询的方法获得其中的"学号,姓名,性别,年级,电话,地址,电子邮件"信息.查询语句如下:
StringBuilder sb = new StringBuilder();
sb.AppendLine("select s.StudentNo,");
sb.AppendLine("s.StudentName,");
sb.AppendLine("s.Sex,");
sb.AppendLine("g.GradeName,");
sb.AppendLine("s.Phone,");
sb.AppendLine("s.Address,");
sb.AppendLine("s.Email");
sb.AppendLine("from [Student] as s");
sb.AppendLine("inner join Grade as g on (g.GradeId=s.GradeId)");
无关代码省略,想要以如下格式输出到控制台:
Console.WriteLine("学号\t\t姓名\t性别\t年级\t电话\t\t地址\t\t电子邮件");
建立了DateReader对象的实例:
SqlDataReader reader = command.ExecuteReader();
输出语句如下:
while (reader.Read())
{
StringBuilder strTemp = new StringBuilder();
strTemp.AppendFormat("{0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6}", reader["StudentNo"], reader["StudentName"], reader["Sex"], reader["GradeName"], reader["Phone"], reader["Address"], reader["Email"]);
Console.WriteLine(strTemp);
}

输出的数据没问题,但是格式对不齐,怎么也调不好,在第四项"年级"与第五项"电话"之间有很大一块空白,类似下面:
学号 姓名 性别 年级 电话 地址 电子邮件
S1200902001 张三 男 S1 01062768866 解放路 zhangsan@126.com
S1200902002 李四 男 S1 13812345678 长江路 @未知
S1200902003 王五 男 S1 13362768866 山东省 @未知

有哪位高手遇到过类似情况请指点一下,多谢!
...全文
320 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Augus6 2012-05-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
是不是你用了类似char类型的字段啊,如果长度不够它会自动在左边填充空格的,改成varchar型。
[/Quote]
嗯, 是类似的问题. 我的"年级"列原来是nchar(50)类型的, 改为nvarchar(50)OK了
十分感谢!
dalmeeme 2012-05-08
  • 打赏
  • 举报
回复
是不是你用了类似char类型的字段啊,如果长度不够它会自动在左边填充空格的,改成varchar型。
Augus6 2012-05-08
  • 打赏
  • 举报
回复
晕,空格显示不全啊,用下划线代替吧格式老是错成这样(下划线表示空格):
学号________姓名 性别 年级 电话 地址 电子邮件
S1200902001 张三 男 __S1 ________________________01062768866 解放路 zhangsan@126.com
S1200902002 李四 男 __S1 ________________________13812345678 长江路 @未知
S1200902003 王五 男 __S1 ________________________13362768866 山东省 @未知

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧