先来代码:SqlConnection con = new SqlConnection(@"Data Source=.;Initial Catalog=Train;Integrated Security=True");
            SqlCommand cmd = con.CreateCommand();
            cmd.CommandText = "select a.TrainId as 车次,a.StationName as 起始站,b.StationName as 终点站," +
            "convert(varchar,a.ArriveTime,108) as 到站时间,convert(varchar,b.ArriveTime-a.LeaveTime,108) as 运行时间," +
            "b.Distance-a.Distance as 距离km,b.Date as 日期" +
            "from Trains a inner join Trains b" +
            "on a.TrainId=b.TrainId and a.StationName='" + start + "' and b.StationName='" + end + "'";
            con.Open();
            SqlDataReader sdr = cmd.ExecuteReader();
            GridView1.Visible = true;
            GridView1.DataSource = sdr;
            GridView1.DataBind();
            con.Close();在数据库中查询是正确的,但是在.net中就老实提示“trians”附近有错.为啥呢?

解决方案 »

  1.   

    方法1:每个引后(前)加加个空格。问题所以见下面红字
    "from Trains a inner join Trains b" +
     "b.
    Distance-a.Distance as 距离km,b.Date as 日期" +方法2:多行的Sql语句使用@开头就可以换行面不需要在中间加 双引号了。@"
    from Trains a inner join Trains b
    b.Distance-a.Distance as 距离km,b.Date as 日期
    。。"
     
      

  2.   

    "from Trains a inner join Trains b   "
    拼接sql字符串的时候注意空格
      

  3.   

    遇到这种情况向输出界面显示一下cmd.CommandText就能看到清楚的程序形成SQL语句了。检查SQL语法就一目了然了。
      

  4.   

    MessageBox.Show(cmd.CommandText);
    显示出来看看。
      

  5.   


    winform 里MessageBox.Show(cmd.CommandText);
    ASP.net里 response.write cmd.CommandText
    这么基础的东西不知道?
      

  6.   

    不知道,我目前位置没有系统学过.net。用到什么在查资料的,我们老师就给我讲了数据库就开始让我们做.net
      

  7.   


    我也没学过.net,今天是第二天。