Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Программирование в среде .NET (ASP.NET,ADO.NET) на C#/VB.NET

Автор: Zhannat
Дата сообщения: 27.02.2008 09:01
Подскажите где можно скачать электронный учебник по C#
очень нужно
Автор: Lihonosov
Дата сообщения: 27.02.2008 09:15
Zhannat
Поищи тут:
http://ebdb.ru/Search.aspx?p=1&s=C%23&x=0&y=0
Автор: Bubble2007
Дата сообщения: 27.02.2008 10:49
BaluBig
При предложенном вами вареанте выпадает ошибка (в строке MyDataAdapter.Fill(dataSet11, "Table"); ):
Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.




Автор: Lihonosov
Дата сообщения: 27.02.2008 11:54
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();
}
Автор: Bubble2007
Дата сообщения: 27.02.2008 13:44
Lihonosov
Пасиба все получилось. А в чем была загвоздка? Почему требовалось очищение dataSet11?
Автор: BaluBig
Дата сообщения: 27.02.2008 14:37
Bubble2007

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

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

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

Код: Колонка1 Колонка2 Колонка3
Строка1 1 2 3
Строка2 2 3 4
Строка3 3 4 5
...
Автор: fvgrod
Дата сообщения: 27.02.2008 19:13
Подскажите как выгружать из памяти константы или как очищать эти константы.
Пробовал:
const.Clone - не помогает.
Автор: EZH
Дата сообщения: 27.02.2008 21:11
fvgrod
Чего-чего? Что именно ты хочешь сделать?
Автор: fvgrod
Дата сообщения: 28.02.2008 04:55
Хочеться очищать константы...
В программе задаю:
string qwerty = "очень длиный текст"
и я так понимаю все время он там и храниться... хотелось бы не забивать этим программу и после его использования очищать переменную qwerty

Добавлено:
И еще вопросик:
Подскажите как использовать компонент:
public bool UseUnsafeHeaderParsing { get; set; }

Два ньюанса:
1) Note: This property is new in the .NET Framework version 2.0.
У меня вроде все стоит, но данный компонент не виден

2) Как правильно его использовать? Нужно "HttpWebRequest.UseUnsafeHeaderParsing" включить.
Автор: TeXpert
Дата сообщения: 28.02.2008 05:18
fvgrod
Цитата:
Подскажите как выгружать из памяти константы или как очищать эти константы
Если это правда, то это есть дурной стиль. Константы на то и константы, извиняюсь за банальность.
Цитата:
Хочеться очищать константы...
В программе задаю:
string qwerty = "очень длиный текст"
Так ты определись -- константы, или обычные переменные? Если речь об "экономии" памяти -- пользуй StringBuilder.
Цитата:
...и я так понимаю все время он там и храниться... хотелось бы не забивать этим программу и после его использования очищать переменную qwerty
Плохо ты понимаешь. Почитай про область видимости.
Вот такие "ньюансы".
Цитата:
Подскажите как использовать компонент:
public bool UseUnsafeHeaderParsing { get; set; }
А кто тебе сказал, что это компонент? Это лишь свойство, который можно установить в true или false. Вот такие нюансы.
Автор: fvgrod
Дата сообщения: 28.02.2008 06:42
TeXpert

Спасибо.

При использовании using System.Net.Mail;

При отправки с Windows XP все нормально, а если пытаюсь отправить с Windows 2003 Server выпадает ошибка:
"The server committed a protocol violation The server response was"

Весь Интернет перерыл, так и не нашел в чем проблема.

Подскажите пожалуйста кто знает.
Автор: Viverra
Дата сообщения: 28.02.2008 06:52

Цитата:
"The server committed a protocol violation The server response was"

либо здесь должно быть важное(!) продолжение, либо винда жжот
Автор: akasyan
Дата сообщения: 28.02.2008 09:58
Подскажите, пожалуйста, ответ на такой вопрос:
возможно ли конвертировать строку с именем директории в тип System.IO.DirectoryInfo?

У меня есть TreeView с именем tvwMain, ноды которого заполняются именами директорий и файлов.
К примеру,

Код: MsgBox(tvwMain.SelectedNode.Text)
Автор: Bubble2007
Дата сообщения: 28.02.2008 11:58
Lihonosov и BaluBig Большое спасиба
Автор: BaluBig
Дата сообщения: 28.02.2008 13:50
fvgrod

Цитата:
В программе задаю:
string qwerty = "очень длиный текст"
и я так понимаю все время он там и храниться... хотелось бы не забивать этим программу и после его использования очищать переменную qwerty
Положи по возможности строку в ресурсы. При необходимости ты её получишь в строковую переменную, после того, как необходимость пропадет - сделает свою работу сборщик мусора
Автор: fvgrod
Дата сообщения: 29.02.2008 13:22
Подскажите пожалуйста на такой вопросик.

Програмка на WinForm отображает время, за счет посекундного таймера.

Отправляю письмо через System.Set.Mail.Send()

Во время отправки часы зависают ( и вообще вся форма подвисает) пока письмо не уйдет... подскажите можно ли для часов или отправки задать отдельный какой нибудь процесс или память выделить... что бы отправка письма не отрожалась на всей форме
Автор: sdubovitsky
Дата сообщения: 29.02.2008 13:29
Подскажите с ASP.NET
на сайте используется Windows-авторизация. В web.config-е прописано:
<allow roles="domain\group" />
<deny users="*" />

В настройках сайта анонимус выключен. При обращении по IP (http://192.168.145.23) пользователь успешно авторизуется. А если по имени машины http://machinename - то авторизация не проходит. Если отключить на сайте Windows авторизацию и поставить Basic - то работает.

Что надо сделать чтобы Windows авторизация работала?
Автор: Viverra
Дата сообщения: 29.02.2008 14:33
fvgrod, пользуйся классом BackgroundWorker, в MSDN хорошие примеры по его использованию.
Автор: fvgrod
Дата сообщения: 29.02.2008 16:07
Viverra
Спасибо
Автор: BaluBig
Дата сообщения: 29.02.2008 17:57
fvgrod

Цитата:
пользуйся классом BackgroundWorker, в MSDN хорошие примеры по его использованию.
Причем в фоне делать желательно отправку, т.к. этот процесс не взаимодействует с GUI.
Автор: fvgrod
Дата сообщения: 01.03.2008 13:52
BaluBig Спасибо

В сумме все понятно, но вот две проблемки:

1) Можно ли выключить BackgroundWorker в любой момент?
(Есть функция CancelAsync() - только я так и не понял, что она в итоге делает)

2) Как отправлять MessageBox из BackgroundWorker?
Автор: fvgrod
Дата сообщения: 02.03.2008 00:57
И еще вопросик про ошибку, голову переломал, но так и не могу придумать, что ей надо:

See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.NullReferenceException: Object reference not set to an instance of an object.
at SendMail.MessageSend.backgroundContinue_RunWorkerCompleted(Object sender, RunWorkerCompletedEventArgs e)
at System.ComponentModel.BackgroundWorker.OnRunWorkerCompleted(RunWorkerCompletedEventArgs e)
at System.ComponentModel.BackgroundWorker.AsyncOperationCompleted(Object arg)
Автор: spybot2d
Дата сообщения: 02.03.2008 15:02
Подскажите как в C# получить доступ к контролу, вызвавшему функцию без указания его имени напрямую из этой самой функции.
Пример: есть несколько TextBox'ов, при клике на каждом вызывается функция, выделяющая текст в нем. Чтобы не писать по функции на каждый, в которых разное лишь название TextBox'a, необходимо создать одну общую.

Вместо
Код:
void TextBox2Click(object sender, EventArgs e)
{
    this.textBox2.SelectAll();
}
    
void TextBox3Click(object sender, EventArgs e)    
{
    this.textBox3.SelectAll();
}
Автор: EZH
Дата сообщения: 02.03.2008 17:46
fvgrod
Такую ошибку надо отлаживать, так ничего толком сказать нельзя. Где-то ссылка на какой-то объект у тебя оказалась null, а по ней происходит обращение.

spybot2d
Тебе надо обращаться не через this, а через sender. Преобразование типа не забудь.
Автор: spybot2d
Дата сообщения: 02.03.2008 17:57
EZH
У sender нет метода SelectAll() и каких-либо других намеков на остальные методы и свойства текстбокса или еще чего-либо дающего к ним доступ. Такое не работает:

Код:
sender.SelectAll();
Автор: EZH
Дата сообщения: 02.03.2008 18:02
spybot2d
Конечено нет, т.к. он имеет тип object на входе в метод
Но реально это сслыка на объект, который инициировал событие. Т.е. если это был клик на TextBox, то и sender будет TextBox, только чтобы получить доступ к его методам надо преобразовать тип sender из object в Textbox.

Textbox txt = sender as Textbox;
if (txt != null)
txt.SelectAll();
Автор: spybot2d
Дата сообщения: 02.03.2008 18:04
EZH
Спасибо!
Автор: fvgrod
Дата сообщения: 03.03.2008 04:32
Подскажите как задавать компрессию при сохранении в JPEG, а то по умолчанию из 2 метровой картинки получаеться файл либо пол метра (MemoryBmp) или сразу 80 КБ (JPEG). А надо получить 200 КБ.

Вот код, но компрессия в нем не работает:

private void button_Click(object sender, EventArgs e)
{
Bitmap bmp = new Bitmap("test.bmp");
ImageCodecInfo myImageCodecInfo;
Encoder myEncoder;
EncoderParameters myEncoderParameters;
myImageCodecInfo = GetEncoderInfo("image/jpeg");
myEncoder = System.Drawing.Imaging.Encoder.Compression;
myEncoderParameters = new EncoderParameters(1);
myEncoderParameters.Param[0] = new EncoderParameter(new Encoder(Encoder.Compression.Guid), (long)EncoderValue.CompressionNone);
bmp.Save("test.jpg", myImageCodecInfo, myEncoderParameters);
}

private static ImageCodecInfo GetEncoderInfo(String mimeType)
{
int j;
ImageCodecInfo[] encoders;
encoders = ImageCodecInfo.GetImageEncoders();
for (j = 0; j < encoders.Length; ++j)
{
if (encoders[j].MimeType == mimeType)
return encoders[j];
}
return null;
}
Автор: Dem_anywhere
Дата сообщения: 03.03.2008 13:15
тебе не тип компрессии надо крутить, а quality

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102

Предыдущая тема: Как удалить/добавить/отключить/включить устройство?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.