khushbujasmine Ответов: 2

Набор данных уничтожается при запуске приложения на клиентском компьютере.


hello

I have make one small desktop application in visual studio 2010 . In this i used one crystal report.
It is working properly in development side. But when i make its setup & install in client machine, it will close whole application.It means it stops whole process.

What can I do in this situation ?

I have seen the problem in Dataset when execution control comes on dataset it will close whole application.


Что я уже пробовал:

Я использую visual studio 2010 & crystal report для vs2010 .

Mehdi Gholam

Мои 5! :)

Patrice T

Жаль, что я не использовал решение :)

Maciej Los

Так что используйте его! Я буду голосовать за него!

khushbujasmine

На самом деле мой английский немного медленный. Поэтому мой вопрос таков.

Patrice T

Для меня это не проблема.
Просто вы не предоставляете информацию, поэтому никакая помощь не возможна, кроме очень общих советов.

khushbujasmine

Когда я запускаю свое приложение windows на локальном компьютере, оно будет работать правильно, а также показывать все отчеты.
Но когда я сделаю его настройку и установлю на клиентскую машину , он будет работать хорошо, но когда я нажму на просмотр отчета, он перестанет работать и закроет все приложение.

2 Ответов

Рейтинг:
2

OriginalGriff

Цитата:
Я видел эту проблему в Dataset, когда управление выполнением входит в dataset, он закрывает все приложение.

Тогда наиболее вероятная причина заключается в том, что вы не используете никаких блоков try-catch, чтобы попытаться правильно найти и обработать ошибки, и ваша строка подключения, вероятно, неверна. Разработка и производство обычно не используют одну и ту же строку подключения или даже одну и ту же базу данных, поэтому, если ваш код не настроен на использование системы конфигурации для хранения строки подключения, он, вероятно, все еще пытается ссылаться на ваш экземпляр SQL Server разработки. Даже если это так, вам нужно проверить, что это за строка и что она верна для реального экземпляра SQL, на который она ссылается. И что экземпляр имеет копию базы данных. И... вы поняли идею.
Мы не можем сделать ничего из этого для вас: поэтому проверьте все это очень тщательно и добавьте блоки try - catch для сообщения о проблемах (включая любое внутреннее исключение), чтобы вам сказали, что это за ошибка, а не "она разбилась".


khushbujasmine

Привет
Я использовал блок try &catch.

Конн = вызов getconnection();

если (поле == "все")
{
cmd = new SqlCommand ("select * from tbl_Expense order by nTitle", conn);
}

иначе если (равенство = = " равно")
{
КМД = новая команда sqlcommand("Select * из tbl_Expense где" + имяполя + "='" + ценности + "' заказ nTitle АСК", соед);
}
иначе если (равенство = = " как")
{
КМД = новая команда sqlcommand("Select * из tbl_Expense где" + имяполя + " как '%" + ценности + "%' заказ nTitle АСК", соед);
}
иначе если (равенство = = " меньше")
{
КМД = новая команда sqlcommand("Select * из tbl_Expense где" + имяполя + "&ЛТ; " + поплавок.Синтаксический анализ(ценности) + "Сортировать по nTitle АСК", соед);
}

УМК.CommandType = CommandType. Text;
SqlDataAdapter da = новый SqlDataAdapter(cmd);

DataSet dsreport = новый набор данных();
dsreport.Четкий();

пробовать
{

da. Fill(dsreport, "tbl_Expense");

}
catch (SqlException)
{

}
возврат dsreport;

Все запросы к базе данных корректны ,и подключение к базе данных также корректно.

OriginalGriff

И вы проглотили любые исключения, так что вы понятия не имеете, что пошло не так, если вообще что-то пошло не так...

khushbujasmine

Когда я запускаю эту программу в visual studio, я отслеживаю строку за строкой, а не какое-либо исключение.
он работает правильно.

OriginalGriff

Да.
Но вы же не запускаете его под VS в производстве, не так ли?
И вот где это failing...so вот где вам нужно собирать информацию, а не выбрасывать ее.

khushbujasmine

Я не могу понять ваш вопрос: "но вы же не запускаете его под VS в производстве, не так ли?" Что это значит ?

OriginalGriff

Вы запускаете свое приложение только в Visual Studio (сокращенно VS), которая находится на вашей машине разработки, в вашей среде разработки, используя вашу базу данных разработки.
Вы не используете VS в производстве, вы работаете в другой среде и используете другую базу данных. Таким образом, вы не можете экстраполировать "никаких исключений в dev" на "Никаких исключений в prod" - особенно когда ваше приложение не работает...
Поэтому, когда вы проглатываете исключения, вы выбрасываете информацию, которая вам отчаянно нужна, и у вас нет другого способа получить ее...

Рейтинг:
1

Maciej Los

Ну, вы не предоставили много информации, но.....

Госпожа писала:
Чтобы предоставить файлы среды выполнения Crystal Reports,ваши проекты установки должны включать пакет перераспределения Crystal Reports for .NET Framework 2.0 или модули слияния Crystal Reports. Модули слияния Crystal Reports доступны для 32-и 64-разрядных компьютеров.

источник: Обзор Развертывания Crystal Reports[^]

Это означает, что вам нужно установить файлы среды выполнения Crystal Reports на клиентскую машину, чтобы иметь возможность использовать ее.


khushbujasmine

Я установил dotNetFx40_Client_x86_x64, crystal report (CRforVS_redist_install_32bit_13_0),
sql server 2008.

Maciej Los

И...

khushbujasmine

и мое заявление, а не какое-либо другое.