【发布时间】:2015-10-03 13:12:25
【问题描述】:
我正在开发一个 C# winforms 桌面应用程序。该应用程序有两个进程。用户只需要调用第一个进程,第一个进程将调用第二个进程。第一个过程进行所有 Web 服务调用以获取数据并存储在本地数据库中。第二个应用程序是基于 UI 的,并显示本地数据库中的数据。我正在为本地数据库使用 SQL Server 2008 R2 Express。
当用户单击桌面图标或从开始菜单调用时,此模型可以正常工作。但我的要求是在 Windows 启动时启动应用程序。所以我把第一个应用程序的快捷方式放在 Windows 启动中。在这种情况下,我看到在第二个进程上进行的数据库调用的 SQL 异常说用户sa 登录失败。
启动第二个进程的代码如下从第一个进程的表单加载调用
string MAIN_APP = "second.exe";
System.Diagnostics.Process.Start(MAIN_APP);
GetDataFromServer();
我不知道为什么它在从桌面调用时工作并且在启动时失败。我尝试在应用程序清单中将用户上下文设置为管理员,但这并没有解决问题。
有什么可能出错的提示吗?
第二个应用的代码如下:
try
{
string sqlStr = "select remember_pass, imgfile from user_profile where userid = '" + txtUserId.Text + "'";
DataSet ds = new DataSet();
SqlConnection con = new SqlConnection(mainConnectionString)
SqlDataAdapter da = new SqlDataAdapter(str, con);
da.Fill(ds);
}
catch(Exception ex)
{
logger.log("Caught Exception. Reason {0}", ex.Message);
}
注意:我更正了问题陈述中的错误。
【问题讨论】:
-
没有足够的代码来分析这个。显示您的第二个应用程序如何登录到数据库。
-
请阅读您的帖子,因为它不是很清楚。示例:
my requirement is to start the application at the start of the application -
@Fabske 如果你阅读了整篇文章,很明显这句话应该是 "to start the [second] application at the start of the [first]"。
-
服务需要一段时间才能启动,而您等待的时间不够长。在这两个命令之间停几分钟,看看是否能解决问题。
-
@jdweng nope,“数据库调用的 SQL 异常 在第二个进程说登录失败”。
标签: c# sql-server windows startup