一根路过的废柴 2021-11-16 20:27 采纳率: 95.2%
浏览 30

在sqlServer中查询有结果,但是在C#中查询却显示“There is no row at position 1”,请问为什么会出现这个原因,怎么修改


            OpenSql();

            SqlCommand com = new(sql, con);

            com.Parameters.AddWithValue("FromTime", model.Time);
            com.Parameters.AddWithValue("FromCity", model.FromCityCode);
            com.Parameters.AddWithValue("ToCity", model.ToCityCode);

            SqlDataAdapter daReader = new SqlDataAdapter();
            daReader.SelectCommand = com;

            DataSet dataSet = new();
            daReader.Fill(dataSet, "OneFlight");

            List<Model.StopFlight> list = new();

            Model.StopFlight[] stopModel = new Model.StopFlight[2];
            for(int i=0;i<stopModel.Length;i++)
            {
                stopModel[i] = new();

                stopModel[i].Time = (TimeSpan)dataSet.Tables["OneFlight"].Rows[i]["Time"];
                stopModel[i].EconomyPrice = Convert.ToDecimal(dataSet.Tables["OneFlight"].Rows[i]["EconomyPrice"]);
                stopModel[i].FlightNumber = Convert.ToInt32(dataSet.Tables["OneFlight"].Rows[i]["FlightNumber"]);
                stopModel[i].FlightTime = Convert.ToInt32(dataSet.Tables["OneFlight"].Rows[i]["FlightTime"]);
                stopModel[i].DepartureAirportIATA = (string)dataSet.Tables["OneFlight"].Rows[i]["DepartureAirportIATA"];
                stopModel[i].ArrivalAirportIATA = (string)dataSet.Tables["OneFlight"].Rows[i]["ArrivalAirportIATA"];

                list.Add(stopModel[i]);
            }

            return list;
            string sql = $"SELECT [Schedule].[Time],[Schedule].[EconomyPrice],[Schedule].[FlightNumber]," +
                $"[Route].[FlightTime],[Route].[DepartureAirportIATA],[Route].[ArrivalAirportIATA] " +
                $"FROM [dbo].[Schedule] LEFT JOIN [dbo].[Route] " +
                $"ON [Schedule].[RouteId]=[Route].[RouteId] " +
                $"WHERE [Schedule].[Date]=@FromTime AND [Schedule].[RouteId] " +
                $"IN (SELECT [Route].[RouteId] FROM [Route] " +
                $"WHERE [Route].[DepartureAirportIATA]=@FromCity " +
                $"AND [Route].[ArrivalAirportIATA] " +
                $"IN (SELECT [Route].[DepartureAirportIATA] " +
                $"FROM [Route] WHERE [Route].[ArrivalAirportIATA]=@ToCity " +
                $"AND [Route].[DepartureAirportIATA] " +
                $"IN (SELECT [Route].[ArrivalAirportIATA] " +
                $"FROM [Route] WHERE [Route].[DepartureAirportIATA]=@FromCity)))" +
                $"UNION\n" +
                $"SELECT [Schedule].[Time],[Schedule].[EconomyPrice],[Schedule].[FlightNumber]," +
                $"[Route].[FLightTime],[Route].[DepartureAirportIATA]," +
                $"[Route].[ArrivalAirportIATA] FROM [Schedule] LEFT JOIN [Route] " +
                $"ON [Schedule].[RouteId]=[Route].[RouteId] " +
                $"WHERE [Schedule].[Date]=@FromTime AND [Schedule].[RouteId] " +
                $"IN (SELECT [Route].[RouteId] FROM [Route] " +
                $"WHERE [Route].[ArrivalAirportIATA]=@FromCity AND [Route].[DepartureAirportIATA] " +
                $"IN (SELECT [Route].[ArrivalAirportIATA] FROM [Route] WHERE [Route].[DepartureAirportIATA]=@ToCity))";

img

img

  • 写回答

1条回答 默认 最新

  • oldmao_2000 人工智能领域新星创作者 2021-11-17 10:02
    关注

    没有查询到数据才会报这个,检查一下条件吧,不行把where条件去掉试看,如果可以跑,说明代码没问题

    评论

报告相同问题?

问题事件

  • 创建了问题 11月16日

悬赏问题

  • ¥15 Fatal error in Process MEMORY
  • ¥15 labelme生成的json有乱码?
  • ¥30 arduino vector defined in discarded section `.text' of wiring.c.o (symbol from plugin)
  • ¥20 如何训练大模型在复杂因素组成的系统中求得最优解
  • ¥15 关于#r语言#的问题:在进行倾向性评分匹配时,使用“match it"包提示”错误于eval(family$initialize): y值必需满足0 <= y <= 1“请问在进行PSM时
  • ¥45 求17位带符号原码乘法器verilog代码
  • ¥20 PySide6扩展QLable实现Word一样的图片裁剪框
  • ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
  • ¥15 怎么看我在bios每次修改的日志
  • ¥15 python+mysql图书管理系统