C# 在桌面应用程序上获得的结果与Windows服务不同
我这里有个奇怪的问题。我在桌面应用程序上执行的代码与在mi服务应用程序上执行的代码完全相同,但结果不同 我正在调用一个查询SQL数据库的方法。使用我的桌面应用程序,当我检查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
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;”