C# 在桌面应用程序上获得的结果与Windows服务不同

C# 在桌面应用程序上获得的结果与Windows服务不同,c#,sql-server,service,C#,Sql Server,Service,我这里有个奇怪的问题。我在桌面应用程序上执行的代码与在mi服务应用程序上执行的代码完全相同,但结果不同 我正在调用一个查询SQL数据库的方法。使用我的桌面应用程序,当我检查DataTable.rows.Count属性时,我得到600行。当我对服务执行同样的操作时,我得到0行。 我没有任何异常,只有0行 代码如下: public static DataTable GetAlarmas() { try { string quer

我这里有个奇怪的问题。我在桌面应用程序上执行的代码与在mi服务应用程序上执行的代码完全相同,但结果不同

我正在调用一个查询SQL数据库的方法。使用我的桌面应用程序,当我检查
DataTable.rows.Count
属性时,我得到600行。当我对服务执行同样的操作时,我得到0行。 我没有任何异常,只有0行

代码如下:

    public static DataTable GetAlarmas()
    {
        try
        {
            string query = "P_Get_Alarmas";

            resultado = SqlHelper.ExecuteDataset(ConnectionString, CommandType.StoredProcedure, query);

            Log.Log.LogError(resultado.Tables[0].Rows.Count.ToString());
        }
        catch (Exception ex)
        {
            Log.Log.LogError(ex.ToString());
        }
        return resultado.Tables[0];
    }
我这么做已经很长时间了,以前从来没有遇到过这个问题。有什么想法吗

这是程序代码:

ALTER PROCEDURE [dbo].[P_Get_Alarmas]
AS
SELECT
    Al.ID_Registro AS 'ID',
    '50' +
    '11' +
    ' ' +
    '18' +
    STUFF(CAST(Ab.id AS VARCHAR),1,0, REPLICATE('0',4- LEN(CAST(Ab.id AS VARCHAR)))) +
    --'E350' +
    Ev.codigoEvento +
    '01' +
    STUFF(CAST(Desc_Zona AS VARCHAR),1,0, REPLICATE('0',3- LEN(CAST(Desc_Zona AS VARCHAR))))+
    '[DC4]'
    AS 'ALARMA'

FROM AlarmReceptor Al 
INNER JOIN Abonados Ab ON Al.Numero_Abonado = Ab.nroAbonado
INNER JOIN Eventos Ev ON Al.Desc_Evento = Ev.descEvento
WHERE Al.informado IS NULL
ORDER BY Al.ID_Registro

连接到数据库时使用什么身份验证?运行服务的帐户是什么?数据库中是否可能有多个模式?您使用的连接字符串是什么?像
User Instance
AttachDbFileName
这样的事情真的很愚蠢吗?存储过程中有什么?获取基于用户的内容?另外,您确定错误日志记录有效吗?这是连接字符串“数据源=W2K8-SQLEMCS;初始目录=PacomIs;用户Id=sa;密码=sa;”