Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование в среде .NET (ASP.NET,ADO.NET) на C#/VB.NET

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162

Открыть новую тему     Написать ответ в эту тему

BaluBig



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
V0lt

Цитата:
и автоматически вызывает Control.Invoke там, где это нужно

Я не знаю что этим хотел сказать автор статьи, но использование BackgroundWorker не отменяет запрета на обращение к элементам GUI из другого потока. Просто BackgroundWorker предоставляет механизм, облегчающий взаимодействие. Механизм работает так:
1. При вызове BackgroundWorker.RunWorkerAsync(Object argument) в качестве параметра передается экземпляр некоторого класса.
2. Этот же экземпляр передается обработчику события DoWork:
public delegate void DoWorkEventHandler(Object sender, DoWorkEventArgs e)
через e.Argument.
3. Обработчик DoWork может вызвать BackgroundWorker.ReportProgress(int percentProgress, Object userState), передав в качестве userState все тот же экземпляр (или любой другой). Это ключевой метод для обратной связи с главным потоком. Потому что
4. В главном потоке после вызова ReportProgress возникает событие BackgroundWorker.ProgressChanged, обработчик которого получит переданный userState в виде e.UserState. И этот обработчик (т.к. выполняется в потоке формы) имеет право спокойно манипулировать GUI.

Всего записей: 404 | Зарегистр. 06-02-2004 | Отправлено: 11:07 18-02-2008
say24



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пробую код POP3/SSL клиента, NetStrm.AuthenticateAsClient("mypop3sslserver") даёт вот такой облом:
 
System.Security.Authentication.AuthenticationException was unhandled
  Message="The remote certificate is invalid according to the validation procedure."
 
Как бы это ни было странно, надо забить на это (вопрос: КАК?), сертификат - на самом деле "invalid". Outlook просто предупреждает, жмём "пофиг" и скачивание почты пошло.

Всего записей: 261 | Зарегистр. 18-02-2003 | Отправлено: 11:55 18-02-2008
s5656

Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
хм.. может я и дурак но после изучения кучи инфы всеранво не получается читать смски...

Всего записей: 8 | Зарегистр. 09-11-2007 | Отправлено: 15:49 18-02-2008
fvgrod



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Добрый день.
 
Такая программа как outlook ножет отправлять в теле письма картинку!!!
 
1) Подскажите как создать письмо с картинкой в теле при помощи элементов System.Web.Mail или System.Net.Mail?
 
2) Возможно можно пользоваться уже готовыми DLL от Microsoft Office Outlook или Outlook Express... тогда встает вопрос, как их подключить...

Всего записей: 98 | Зарегистр. 17-10-2006 | Отправлено: 17:06 21-02-2008
EZH



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
fvgrod
Если не в аттачменте, а в теле, то это уже html-ное тело email
 
Вот пример, правда на VB.NET, но не важно, т.к. всё то же.
http://aspalliance.com/1354_Sending_HTML_Mail_with_Embedded_Image_in_NET.8

Всего записей: 1738 | Зарегистр. 02-09-2004 | Отправлено: 02:58 22-02-2008 | Исправлено: EZH, 02:58 22-02-2008
recvezitor

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Возникла проблема. Почему то начала отваливаться Session. Захожу дебагером, смотрю SessionID и он все время разный, естественно никакая инфа между вызовами страницы не сохраняется... Где то нашел что сессия сбрасывается при появлении ошибок. Поставил брейкпонт в global.asax  на событие Application_Error, никакаих ошибок не обенаружилось. Свойство HttpContext.Current.Session.Mode = InProc, на IISе и в дебагере сессии разрешены и таймаут установлен в 20мин.
 
Попробовалс делать новый сайт. Запустил его через встроенный в студию сервер и через IIS все работает нормально.
 
 Там где не работает сессия из необычного только то что все странцы унаследованы от пользовательского класса который в свою очеред унаследован от  
 
System.Web.UI.Page
 
 в котором замещается один метод.  
 
 
Добавлено:
БЛИН это тупорылый IE глючил. В FF норм

Всего записей: 95 | Зарегистр. 21-11-2006 | Отправлено: 04:29 22-02-2008
BaluBig



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
fvgrod

Цитата:
2) Возможно можно пользоваться уже готовыми DLL от Microsoft Office Outlook или Outlook Express... тогда встает вопрос, как их подключить...
По поводу взаимодействия с неуправляемым кодом вообще читать в MSDN начиная с "Interoperation with unmanaged code", по поводу использования COM-объектов "Exposing COM Components to the .NET Framework".

Всего записей: 404 | Зарегистр. 06-02-2004 | Отправлено: 11:41 22-02-2008
Bubble2007

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите обновить dataGridView
после вставки данные не обновляются в dataGridView, но вставляются в базу данных. Я не смогла решить проблему помогите пожалуйста.

Код:
 
MyDataAdapter.InsertCommand.Connection = MyodbcConnection;  
MyodbcConnection.Open();
string myparams = textBox1.Text;
MyDataAdapter.InsertCommand.Parameters[0].Value = myparams;
MyDataAdapter.InsertCommand.ExecuteNonQuery();
if (dataSet11.HasChanges())
MyDataAdapter.Update(dataSet11, "Table");
MyodbcConnection.Close();
 

Всего записей: 6 | Зарегистр. 15-03-2007 | Отправлено: 17:55 25-02-2008 | Исправлено: Bubble2007, 17:58 25-02-2008
Lihonosov

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Bubble2007
На С#  
Если DataGridView связана с DataSet1, то:

Код:
MyDataAdapter.Fill(dataSet1);

 

Всего записей: 537 | Зарегистр. 05-07-2007 | Отправлено: 18:10 25-02-2008 | Исправлено: Lihonosov, 18:14 25-02-2008
BaluBig



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Bubble2007
Метод MyDataAdapter.Update анализирует изменения в DataTable и вызывает соответствующую команду (DataAdaper.InsertCommand, DataAdaper.UpdateCommand, DataAdaper.DeleteCommand) для записи данных в базу. Этот вызов не имеет никакого отношения к обновлению данных в DataTable. Для этого нужно вызывать  
MyDataAdapter.Fill(dataSet11, "Table");
Итого (обрати внимание на try/finally, так безопаснее).

Код:
 
MyDataAdapter.InsertCommand.Connection = MyodbcConnection;  
try
{
   MyodbcConnection.Open();  
   string myparams = textBox1.Text;  
   MyDataAdapter.InsertCommand.Parameters[0].Value = myparams;  
   MyDataAdapter.InsertCommand.ExecuteNonQuery();
   MyDataAdapter.Fill(dataSet11, "Table");  
}
finally
{
  if (MyodbcConnection.State == ConnectionState.Open) MyodbcConnection.Close();
}
 

Всего записей: 404 | Зарегистр. 06-02-2004 | Отправлено: 12:21 26-02-2008
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята, у меня нетипизированный DataSet, и большинство таблиц -- статичны, то есть, не для изменений. Особой необходимости делать их только для чтения нет -- всё равно в программе не предусмотрены их изменения. А вот как грамотно записывать только изменённые таблицы обратно в базу? Достаточно ли будет вызова DataAdaper.Update для соответствующих таблиц вместо одного вызова DataSet.Update?

----------
Майкудук, Пришахтинск не предлагать!:)
А на Пирогова приходит снова весенний гомон...

Всего записей: 3604 | Зарегистр. 08-02-2003 | Отправлено: 12:42 26-02-2008
Zhannat

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите где можно скачать электронный учебник по C#
очень нужно

Всего записей: 1 | Зарегистр. 27-02-2008 | Отправлено: 10:01 27-02-2008
Lihonosov

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Zhannat
Поищи тут:
http://ebdb.ru/Search.aspx?p=1&s=C%23&x=0&y=0

Всего записей: 537 | Зарегистр. 05-07-2007 | Отправлено: 10:15 27-02-2008 | Исправлено: Lihonosov, 10:15 27-02-2008
Bubble2007

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BaluBig
При предложенном вами вареанте выпадает ошибка (в строке   MyDataAdapter.Fill(dataSet11, "Table"); ):
Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.
 
 
 
 

Всего записей: 6 | Зарегистр. 15-03-2007 | Отправлено: 11:49 27-02-2008
Lihonosov

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Bubble2007
А если так:

Код:
MyDataAdapter.InsertCommand.Connection = MyodbcConnection;  
try
{
   MyodbcConnection.Open();  
   string myparams = textBox1.Text;  
   MyDataAdapter.InsertCommand.Parameters[0].Value = myparams;  
   MyDataAdapter.InsertCommand.ExecuteNonQuery();
   dataSet11.Clear();
   MyDataAdapter.Fill(dataSet11, "Table");  
}
finally
{
  if (MyodbcConnection.State == ConnectionState.Open) MyodbcConnection.Close();
}  

Всего записей: 537 | Зарегистр. 05-07-2007 | Отправлено: 12:54 27-02-2008
Bubble2007

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Lihonosov
Пасиба все получилось. А в чем была загвоздка? Почему требовалось очищение dataSet11?

Всего записей: 6 | Зарегистр. 15-03-2007 | Отправлено: 14:44 27-02-2008
BaluBig



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Bubble2007

Цитата:
Почему требовалось очищение dataSet11?
Потому что сделано так Это позволяет заполнять датасет в несколько приемов, но датасет не несет ответственности за определение тождественности записей, этим надо заниматься самомтоятельно. Кстати говоря, в рассматриваемом примере если в таблицу БД добавляется какое-то количество записей без влияния на существующие, то можно было бы не загружать всю выборку полностью заново, а загрузить только добавленные записи (используя другой DataAdapter и соответственно другую команду SelectCommand).

Всего записей: 404 | Зарегистр. 06-02-2004 | Отправлено: 15:37 27-02-2008
Lihonosov

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Bubble2007

Цитата:
А в чем была загвоздка? Почему требовалось очищение dataSet11?

Я вижу это так, например:
1. Заполнил DataSet.

Код:
                Колонка1     Колонка2     Колонка3
Строка1         1                 2                  3
Строка2         2                 3                  4
Строка3         3                 4                  5
...  

2. Связал DataGridView с DataSet, т.е. заполнил таблицу.

Код:
Это сейчас в DataGridView:
                Колонка1     Колонка2     Колонка3
Строка1         1                 2                  3
Строка2         2                 3                  4
Строка3         3                 4                  5
...  

3. Изменил некоторые значения (добавил, удалил, изменил строки..).

Код:
                Колонка1     Колонка2     Колонка3
Строка1         1                 2                  3
Строка2         2                 3                  4
Строка3         3                 4                  5
Строка4         4                 5                  6

4. Обновил значения в базе (.Update()).

Код:
Это сейчас находится в базе:
               Колонка1     Колонка2     Колонка3
Строка1         1                 2                  3
Строка2         2                 3                  4
Строка3         3                 4                  5
Строка4         4                 5                  6

 
И если сейчас вызвать MyDataAdapter.Fill(dataSet11, "Table");, то значения из "Table" добавятся в DataSet, что вызовет ошибку (в твоем случае):
Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints. , потому что у тебя какое-то поле установлено как "Уникальное", а ты пытаешься к значениям которые есть в DataSet добавить эти же значения и в результате...
Следовательно, перед выполнением MyDataAdapter.Fill(dataSet11, "Table"); нужно очистить DataSet.
Объяснил как смог, надеюсь понятно

Всего записей: 537 | Зарегистр. 05-07-2007 | Отправлено: 17:02 27-02-2008
fvgrod



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Подскажите как выгружать из памяти константы или как очищать эти константы.
Пробовал:
const.Clone - не помогает.

Всего записей: 98 | Зарегистр. 17-10-2006 | Отправлено: 20:13 27-02-2008
EZH



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
fvgrod
Чего-чего? Что именно ты хочешь сделать?

Всего записей: 1738 | Зарегистр. 02-09-2004 | Отправлено: 22:11 27-02-2008
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование в среде .NET (ASP.NET,ADO.NET) на C#/VB.NET


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru