string xuehao = listView1.Items[listView1.FocusedItem.Index].Tag.ToString().Trim();
 string xq = comboBox3.Text.Trim();
//行转列
 string sql = "select a.score as Java程序设计,b.score as 大学英语,c.score as 高级代数,d.score as Access数据库,(a.score + b.score + c.score +d.score) as   total from((scoreinfo as a inner join scoreinfo as b on a.ScoreID=b.ScoreID) inner join scoreinfo as c on a.ScoreID=c.ScoreID) inner join scoreinfo as d on a.ScoreID=d.ScoreID where studentnumber=" + xuehao + " and semester=" + xq + " ";
          
 OleDbDataAdapter adp = new OleDbDataAdapter(sql, connection1);
 ds = new DataSet();
 adp.Fill(ds,"score"); //出错的位置
 //该特定字段'studentnumber'可以参考SQL语句中FROM子句列表中的多个表。请高手帮我看看是哪里出错 
               

解决方案 »

  1.   


    string sql = "select  a.score as Java程序设计,
    b.score as 大学英语,
    c.score as 高级代数,
    d.score as Access数据库,
    (a.score + b.score + c.score +d.score) as  total 
    from (
    (
    scoreinfo as a inner join scoreinfo as b 
    on a.ScoreID=b.ScoreID

    inner join scoreinfo as c 
    on a.ScoreID=c.ScoreID

    inner join scoreinfo as d 
    on a.ScoreID=d.ScoreID 
    where   a.studentnumber=" + xuehao + " and a.semester=" + xq + " ";
      

  2.   

    行转列的简单方法应该使用Case语句(SQL Server)
      

  3.   

    估计你的多个表有studentnumber字段,明确地写a.studentnumber或者b.studentnumber..