0

当我运行此 SQL 时,我收到此错误

这是我运行的第二个 SQL,但我尝试运行第一个 SQL,它工作两次,并且工作正常,所以可能不是开放连接问题?

不允许发送或接收数据的请求,因为未连接套接字并且(当使用发送调用在数据报套接字上发送时)未提供地址。

上次我在非常相似的代码中收到该错误,这是因为我在 args 部分的变量名中留下了“@”。

所以我强烈怀疑这是“你的 SQL 调用代码以某种方式搞砸了”或“返回 0 行”的一般错误(伙计,我希望不是后者)

public List<EnrTypeSepInfoCV> GetEnrTypeSepInfo(long enrId)
{
    var aseSqlConnectionString = configuration.GetConnectionString("SybaseDBDapper");

    string sql = "";

    sql += "select et.enrtype_id, ";
    sql += " et.active as stud_status, ";
    sql += " s.sep_dt ";
    sql += "from enrollment_type et,separation s ";
    sql += "where et.enrtype_id *= s.enrtype_id ";
    sql += "and et.enr_id = @al_enr_id  ";

    dapperTools.DapperCustomMapping<EnrTypeSepInfoCV>();

    try
    {
        using (IDbConnection db = new AseConnection(aseSqlConnectionString))
        {
            var arguments = new
            {
                @al_enr_id = enrId
            };

            List<EnrTypeSepInfoCV> ll = new List<EnrTypeSepInfoCV>();

            ll = db.Query<EnrTypeSepInfoCV>(sql, arguments).ToList();
            return ll;
        }
    }
    catch (Exception ex)
    {
        Trace.WriteLine(ex.ToString());
        return null;
    }
}

如果我拉出 SQL,用传入的值替换变量,一切正常。

我逐行将其与一个有效的 SQL 调用方法进行比较,我看不出任何差异。有谁知道我做错了什么?

有没有办法在这种情况下获得更多信息错误?

如果重要的话,我正在编写一个 .Net Core Web API 服务,供针对 Sybase DB v12.* 运行的 Vue 应用程序使用。

我有其他 API 方法可以正常工作,它们以相同的方式调用数据库。

这是我的数据对象

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace SpProofOfConceptAPI.Dto
{

    public class EnrTypeSepInfoCV
    {
        [Dapper.Column("enrtype_id")]
        public Int64 EnrTypeId { get; set; }

        [Dapper.Column("stud_status")]
        public string StudStatus { get; set; }

        [Dapper.Column("sep_dt")]
        public DateTime? SepDt { get; set; }
    }
}
4

1 回答 1

0

好的,

因此,此消息似乎是通用的“连接出现问题”消息。

就我而言,这是连接超时到期。默认是 15s,我把它改成 600s,它工作正常。(我们有一些长期运行的报告可能需要很长时间)

因为它在 ASE 上,所以我只添加了“连接超时 = 600;”。

于 2021-01-04T20:19:05.157 回答