Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从C应用程序连接到SQL数据库时,我收到消息“Timeout expired..”_C#_Sql Server_Ado.net_Sqlconnection - Fatal编程技术网

C# 从C应用程序连接到SQL数据库时,我收到消息“Timeout expired..”

C# 从C应用程序连接到SQL数据库时,我收到消息“Timeout expired..”,c#,sql-server,ado.net,sqlconnection,C#,Sql Server,Ado.net,Sqlconnection,我写了一个销售管理软件。它可以很好地处理几乎所有函数,这意味着连接字符串是正确的,除了只有一个函数生产计划。当我点击按钮执行此功能时,会收到一条错误消息超时过期。操作完成前已过超时时间,或者服务器没有响应 在这个函数中,我调用了一个存储过程,并在SQLManagementStudio中对其进行了测试,它在0.2秒内运行良好,速度很快 请帮我找出一个解决办法。提前感谢! 以下是我的存储过程: CREATE proc [dbo].[SPChiTietKeHoachGiao] (@makhg nvar

我写了一个销售管理软件。它可以很好地处理几乎所有函数,这意味着连接字符串是正确的,除了只有一个函数生产计划。当我点击按钮执行此功能时,会收到一条错误消息超时过期。操作完成前已过超时时间,或者服务器没有响应

在这个函数中,我调用了一个存储过程,并在SQLManagementStudio中对其进行了测试,它在0.2秒内运行良好,速度很快

请帮我找出一个解决办法。提前感谢! 以下是我的存储过程:

CREATE proc [dbo].[SPChiTietKeHoachGiao] (@makhg nvarchar(15))  
as  
begin  
declare @ngay datetime, @thang int, @nam int,  
  @ngay1 datetime, @thang1 int, @nam1 int,  
  @ngay2 datetime, @thang2 int, @nam2 int,  
  @ngay3 datetime, @thang3 int, @nam3 int,  
  @ngay4 datetime, @thang4 int, @nam4 int  
-- Lay tinh hinh tieu thu cua thang truoc  
select top 1 
           @ngay=dateadd(month, -1,Thang) 
from KeHoachGiao 
where MaKeHoachGiao = @makhg   
set @thang = month(@ngay)  
set @nam = year(@ngay)  
set @ngay1=dateadd(MONTH,-1,@ngay)  
set @ngay2=dateadd(MONTH,-1,@ngay1)  
set @ngay3=dateadd(MONTH,-1,@ngay2)  
set @ngay4=dateadd(MONTH,-1,@ngay3)  
set @thang1=month(@ngay1)  
set @nam1=year(@ngay1)  
set @thang2=month(@ngay2)  
set @nam2=year(@ngay2)  
set @thang3=month(@ngay3)  
set @nam3=year(@ngay3)  
set @thang4=month(@ngay4)  
set @nam4=year(@ngay4)  

select ct.MaSP, 
         TenSP,
         xuatkho4.TieuThuTrongThang4,
         xuatkho3.TieuThuTrongThang3,
         xuatkho2.TieuThuTrongThang2,
         xuatkho1.TieuThuTrongThang1,  
  (   
    ISNULL ( TieuThuTrongThang4, 0 )
   +ISNULL ( TieuThuTrongThang3, 0 )
   +ISNULL ( TieuThuTrongThang2, 0 )
   +ISNULL ( TieuThuTrongThang1, 0 ) ) / 4 TTBQ,  

        TonDauKy,
        NhapKhoTrongThang,
        xuatkho.TieuThuTrongThang,
        TonCuoiKy,  

   case KeHoachSanXuat 
        when 0 then null else KeHoachSanXuat end KeHoachSanXuat,  

        KeHoachSanXuat * DinhMuc / 1000000 SanLuong,  
    case SoLuongDaNhap 
         when 0 then null else SoLuongDaNhap end SoLuongDaNhap,  

    case isnull( KeHoachSanXuat, 0 ) 
         when 0 then null 
         else 100 * SoLuongDaNhap / isnull ( KeHoachSanXuat, 100) end TiLeHoanThanh  

from ( 
       select * from ChiTietKeHoachGiao where makehoachgiao = @makhg) ct 

       inner join  
       (
         select masp
              , tensp 
              , stt
              , MaLoai
              , DinhMuc 
         from SanPham
       ) sp 

       ON ct.MaSP = sp.MaSP  

       left join  
       (  
          select ctpx.MaSP
              , SUM( ctpx.SoLuong ) TieuThuTrongThang  
          from   
          (
             select * from PhieuXuatKho 
             where MONTH(NgayXuat)= @thang 
             and YEAR(NgayXuat) = @nam 
           ) pxk  

          inner join ChiTietXuatKho ctpx 
          on pxk.MaPhieuXuat = ctpx.MaPhieuXuat  
          group by ctpx.MaSP  
       ) xuatkho 
      on sp.MaSP = xuatkho.MaSP  


      left join  
      (  
        select ctpx.MaSP
             , sum(ctpx.SoLuong) TieuThuTrongThang1  
        from   
           ( select * from PhieuXuatKho 
             where MONTH(NgayXuat) = @thang1 
             and YEAR ( NgayXuat) = @nam1 

            ) pxk  

             inner join ChiTietXuatKho ctpx 
             on pxk.MaPhieuXuat = ctpx.MaPhieuXuat  
             group by ctpx.MaSP  

      ) xuatkho1 

      on sp.MaSP = xuatkho1.MaSP  

      left join  
      (  
         select ctpx.MaSP
              , sum ( ctpx.SoLuong ) TieuThuTrongThang2  
         from   
            (
              select * from PhieuXuatKho 
              where MONTH ( NgayXuat) = @thang2 
              and YEAR ( NgayXuat)= @nam2

             ) pxk

             inner join ChiTietXuatKho ctpx 
             on pxk.MaPhieuXuat = ctpx.MaPhieuXuat  
             group by ctpx.MaSP  

      ) xuatkho2 
      on sp.MaSP = xuatkho2.MaSP  

      left join  
      (  
        select ctpx.MaSP
             , sum ( ctpx.SoLuong ) TieuThuTrongThang3  
        from   
            (
               select * from PhieuXuatKho 
               where MONTH ( NgayXuat ) = @thang3 
               and YEAR ( NgayXuat ) = @nam3 

              ) pxk  

              inner join ChiTietXuatKho ctpx 
              on pxk.MaPhieuXuat = ctpx.MaPhieuXuat  
              group by ctpx.MaSP  

      ) xuatkho3 
      on sp.MaSP = xuatkho3.MaSP  

      left join  
      (  
        select ctpx.MaSP
             , sum(ctpx.SoLuong) TieuThuTrongThang4  
        from   
            (
              select * from PhieuXuatKho 
              where MONTH(NgayXuat) = @thang4 
              and YEAR(NgayXuat) = @nam4

              ) pxk  

              inner join ChiTietXuatKho ctpx 
              on pxk.MaPhieuXuat = ctpx.MaPhieuXuat  
              group by ctpx.MaSP  

       ) xuatkho4 
       on sp.MaSP = xuatkho4.MaSP  

      inner join 
               (
                 select maloai
                      , tenloai 
                 from loaisanpham

                 ) loai 

        on sp.maloai = loai.maloai  
        order by loai.tenloai
               , sp.STT  
end  

我曾经遇到过这样的问题,解决方法是重新编译SP。 您可以通过在参数声明和AS关键字之间添加WITH RECOMPILE来实现这一点,或者使用sp_RECOMPILE sp。希望这对您有所帮助


请显示您的代码,用foo替换应该与世界共享的任何内容。请共享您正在使用/调用该存储过程的代码。那么,CSharp代码在哪里?你真的确定这段代码可以在0.2秒内处理一组记录吗?谢谢!我重新编译了这个SP,但当我从代码中调用SP时,它仍然运行得太慢了大约4分钟,在SQL Management Studio中运行时,它的运行速度仍然太慢了0.2秒。我显示了查询计划并得到消息:缺少索引影响17.1137。运行SQL Profiler并检查正在运行的确切查询,然后在SQL Server Studio中尝试。很可能您需要添加缺少的索引并尝试优化SP