Я написал службу Windows, которая берет данные из локальной базы данных и выполняет функцию. Чтобы подключиться к базе данных, я написал следующий код:Служба Windows не запускается из-за DataAdapter.Fill()
SqlConnection connstring1;
string conn1 = ConfigurationManager.ConnectionStrings["nameOfConnectionString"].ConnectionString.ToString();
connstring1 = new SqlConnection(conn1);
connstring1.Open();
string cmd = "Select [OrderId], [VendorId], [txtPaymentMethod] , [txtPaymentStatus], [Updated_On] FROM [Postmate_ Shopping].[dbo].[tbl_Order_Master] WHERE [txtPaymentMethod] = 'online' AND [txtPaymentStatus]= 'pending'";
DataTable dt = new DataTable();
DataSet ds = new DataSet();
SqlDataAdapter da1 = new SqlDataAdapter(cmd, connstring1);
da1.Fill(ds);
da1.Dispose();
connstring1.Close();
Код перед da1.Fill (ds); работает, и сервис устанавливается, но когда da1.Fill (ds); включен в код, сервис не запускается. Я пробовал один и тот же код в веб-приложении, и он работал нормально. Это то, что я получаю, когда da1.Fill (ds); Включено:
Служба «ScheduledService» на локальном компьютере началась, а затем остановлена. Некоторые службы автоматически останавливаются, если они не используются другими службами или программами.
Чтобы проверить, если служба работает должным образом я удалил выше код и заменить его с этим кодом:
FileStream fs = new FileStream(@"d:\ScheduledService.txt",
FileMode.OpenOrCreate, FileAccess.Write);
//set up a streamwriter for adding text
StreamWriter sw = new StreamWriter(fs);
//find the end of the underlying filestream
sw.BaseStream.Seek(0, SeekOrigin.End);
//add the text
sw.WriteLine(content);
//add the text to the underlying filestream
sw.Flush();
//close the writer
sw.Close();
служба работала нормально. Я попытался найти проблему, но не найдено соответствующего решения. Пожалуйста, помогите. Заранее спасибо.
Просите о ясности при необходимости.
EDIT: Любые мысли об использовании datareader?
Вы уверены, что строка соединения является правильным, и что запрос выполняется против этой связи без ошибок? – StingyJack
Да, тот же код, который я пробовал в веб-приложении, и который отлично работал.EDIT: он возвращает значения из базы данных. – ashwinx
Используете ли вы пользователей Windows для подключения к БД? –