日期:2014-05-18  浏览次数:21099 次

求助:编写C#程序从SQL Server数据库读取表中数据,显示格式无法对齐
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 山东省 @未知

有哪位高手遇到过类似情况请指点一下,多谢!

------解决方案--------------------
是不是你用了类似char类型的字段啊,如果长度不够它会自动在左边填充空格的,改成varchar型。