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

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

Автор: mxm1975
Дата сообщения: 20.11.2006 22:07
я не вполне понимаю, что означает:

Цитата:
пробовал просто pictureBox1.Image.Dispose() вызывать

скажем, что я "пробовал просто ... вызывать" и у меня работает как требовалось - память освобождается.

Наверное нужно привести более полный фрагмент кода. А лучше задуматься зачем вызывается Dispose. Может быть вызов "не там"?

"Три последние строки" демонстрируют как "жестко обрезать" workspace приложению.
Это можно использовать "в лоб", а лучше прочитать вышеупомянутого Рихтера и стараться не делать так (или делать как можно реже). Понятно, что делать эти вызовы нужно из "правильного места".

фух...

Автор: void
Дата сообщения: 21.11.2006 11:16
V0lt

Цитата:
pictureBox1.Image=null;

я полагаю, что в твоем случае достаточно вместо этой строки написать pictureBox1.Image.Dispose();
Автор: V0lt
Дата сообщения: 21.11.2006 19:22
mxm1975

Цитата:
скажем, что я "пробовал просто ... вызывать" и у меня работает как требовалось - память освобождается.

Нашел причину отказа PictureBox. Оказалось, что Dispose() нельзя вызывать если объект ни на что не ссылается (ни разу не определялся либо =null)

В итоге получил:

Код: private void Form1_Load(object sender, System.EventArgs e)
{
pictureBox1.Image= new Bitmap(1,1);
}
...
...
private void listView1_Click(object sender, System.EventArgs e)
{
...
if ()
{
pictureBox1.Image.Dispose();
pictureBox1.Image=Image.FromFile(s);
}
else
{
pictureBox1.Image.Dispose();
pictureBox1.Image=new Bitmap(1,1);
}
}
Автор: void
Дата сообщения: 22.11.2006 11:40
Однопиксельный битмэп создавать не обязательно.
Думаю более правильным будет следующий код:

if (pictureBox1.Image != null)
{
pictureBox1.Image.Dispose();
pictureBox1.Image = null;
}
if (ImageSelected)
pictureBox1.Image = Image.FromFile(s);
Автор: V0lt
Дата сообщения: 22.11.2006 18:16
void

Цитата:
Однопиксельный битмэп создавать не обязательно.
Думаю более правильным будет следующий код:

тоже неплохо
Автор: VIIwmss34
Дата сообщения: 23.11.2006 00:46
Люди, помогите пожалуйста, нужна программа(очень срочно):


Назначение и область применения программы:
Разработка программы для шифрования произвольного текста. Методы криптографии.
Состав выполняемых функций:
Шифрование и дешифрование произвольного текста.
Примечание:
Метод шифрования основан на использовании фиксированной перестановки чисел: при шифровании к каждой группе из к символов применяется фиксированная перестановка, заданная последовательностью натуральных чисел от 1 до к (если в группе меньше к символов, недостающие символы заменяются пробелами). Например, если к=4 и перестановка есть {3,4,2,1}, то шифром группы символов abсd будет cdba.
Организация входных и выходных данных:
Исходные подлежащие шифрованию и расшифрованные данные - текстовые файлы, перестановка и зашифрованные данные - двоичные файлы.
Состав технических и программных средств:
Операционная система MS DOS или PC DOS; система программирования MSC или Turbo С. Дисплейный адаптер EGA/VGA, видеорежим 640x480, 16 цветов.

Автор: DeMoN_iDA
Дата сообщения: 25.11.2006 01:56
Помогите пожалуйста с исправлением ошибки в файле GLOBAL.ASA... Сам Я не силен в SQL Server 2000 и ASP .NET...

Есть Win2k3 Serve + AD + SQL Server 2000 + ISS. Есть прога написаная на ASP .NET, которая работала с базами на локальном компе под управлением MSDE 2000. Для многопользовательской работы прога и базы были перемещены на выше указаный сервер, но корректно не работало, т.к. выдавало что ошибку в строке 1 файла GLOBAL.ASA
Мне помогли устранить проблему и все работало до того момента, пока пользователь не обновил приложение и соответственно затер GLOBAL.ASA. Пользователь перед обновлением копий не сделал и посмотреть правильный файл GLOABAL.ASA теперь не представляется возможным...
Вот содержимое файла GLOBAL.ASA:

Код:
<OBJECT RUNAT=Server SCOPE=Application ID=Counter PROGID="MSWC.Counters" >
</OBJECT>
<object runat=Server scope=session id=con progid = "ADODB.Connection"></object>
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Session_OnStart
'con.ConnectionString ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\webProjects\CCM\local\dbccm3.mdb;Jet OLEDB:Database Password=sa;Persist Security Info=False"
'con.Open
Con.Provider = "sqloledb"
'Con.Properties("Data Source").Value = "SANDY\D"
Con.Properties("Initial Catalog").Value = "CCM"
Con.Open "", "sa", "sa"
End sub
Sub Session_OnEnd
con.close
End Sub
</SCRIPT>
Автор: mxm1975
Дата сообщения: 25.11.2006 05:43

Код: con.ConnectionString="Data Source='SANDY,1433';Network Library='DBMSSOCN';Initial Catalog='CCM';User ID='sa';Password='sa';"
Автор: DeMoN_iDA
Дата сообщения: 26.11.2006 23:41
mxm1975

Спасибо за уделенное внимание...

Ошибку выдает на первой строке, типа нет такого ProgID MSWC.Counters, код ошибки 0135 или 0147 (точно не помню)... Дело в том, что коррективы вносились только в эти строки

Код:
<OBJECT RUNAT=Server SCOPE=Application ID=Counter PROGID="MSWC.Counters" >
</OBJECT>
<object runat=Server scope=session id=con progid = "ADODB.Connection"></object>
. . . . .
Автор: mxm1975
Дата сообщения: 27.11.2006 16:27
тогда может быть так?


Код:
<OBJECT RUNAT=Server SCOPE=Application ID=Counter PROGID="nce.mswc.Counters" ></OBJECT>
Автор: Collapse_Troll
Дата сообщения: 11.01.2007 18:46
Здравствуйте! С наступающим СНГ!

Прошу хелпа.

Суть дела: получаю версии и время записи NET-овских DLL-ок из дирректории (к примеру "C:\Program Files\Microsoft Visual Studio 8\VC\vcpackages")

На форме лежит listView (названный mylistView). Вот так создаю в нем 3 колонки (название файла, версия сборки, дата записи

файла):

Код:
// Здесь создаю колонки в listView
private void CreateColumns()
{
mylistView.View = View.Details;
mylistView.Columns.Add("File name", 150, HorizontalAlignment.Center); // колонка имени файла
mylistView.Columns.Add("File version", 150, HorizontalAlignment.Center); // версия
mylistView.Columns.Add("Was written in", 145, HorizontalAlignment.Center); // время создания
}
Автор: djdtyfhu
Дата сообщения: 25.01.2007 03:54
Такой вопрос: сильно ли различаются реализации C# от MS и от Borland?
Автор: AlexandrVS
Дата сообщения: 26.01.2007 11:31
djdtyfhu
Отличие только в расширенных компонентах помоему (все что связанно с Framework-ом у них одинаковое), но у борланда есть возможность сохранять проект в MS VS. Но лучше все таки писать в VS, у них более легковеснй продукт получился, а с дополнительными компонентами типа DevExpress то вообще просто сказка и компоненты большую часть сейчас на шарпе по VS заточены. Я лично как перешел на Visual Studio 2005 с Borland Studio 2005 больше не хочу на него возвращться (раньше программировал на Delphi и ни когда не думал что Шарп под студией майкрософта мне понравится больше
Автор: djdtyfhu
Дата сообщения: 26.01.2007 14:10
AlexandrVS


Цитата:
с дополнительными компонентами типа DevExpress то вообще просто сказка


А разве они делают компоненты и для .NET?
Автор: EZH
Дата сообщения: 26.01.2007 20:47
djdtyfhu
Проснулся, сто лет как делают И для Win-приложений, и для Web-приложений.

Добавлено:
Мой совет - для .NET/C# выбирай Visual Studio 2005.
Автор: djdtyfhu
Дата сообщения: 27.01.2007 09:41
EZH

Цитата:
Мой совет - для .NET/C# выбирай Visual Studio 2005.


Я в раздумьях о будущем Delphi ищу куда бы преткнуться чтобы лет 10-15 (как было как раз 10 лет назад) не метаться по средам программирования. Пока смотрю на C#, но пугает все же наследство его от С и С++ с их навороченным синтаксисом и множеством сразу не очевидных подводных камней...
Автор: EZH
Дата сообщения: 27.01.2007 11:54
djdtyfhu
У меня у самого уже порядка 8-лет стаж на Borland C++Builder, и вот уже 3 года как успешно сижу на MS VisualStudio 2003/2005.

Цитата:
Пока смотрю на C#, но пугает все же наследство его от С и С++ с их навороченным синтаксисом и множеством сразу не очевидных подводных камней...
Нет в C# ничего такого особо навороченного по синтаксису в сравнении с Delphi. Среда .NET накладывает тут свой отпечаток на все и многое получается значительно проще чем в C/C++.
Автор: djdtyfhu
Дата сообщения: 27.01.2007 14:22
EZH

А как с быстродействием программ под платформу .NET? JIT компиляция сильно тормозит реальные проекты?
Автор: EZH
Дата сообщения: 27.01.2007 15:49
djdtyfhu
Нет, нормально все. Я в основном пишу большие БД-приложения под ASP.NET, так что тут помимо .NET значительно большее значение в быстродействии имеет SQL Server, да сетевые каналы. А .NET позваляет больше концентрироваться на логике приложения, а не на каких-то системных заморочках.
Автор: AlexandrVS
Дата сообщения: 29.01.2007 07:59

Цитата:
А как с быстродействием программ под платформу .NET? JIT компиляция сильно тормозит реальные проекты?


djdtyfhu
Конечно по скорости Net немного тормозит, по на новых компах это не заметно и не забывай что это уже ориентированно на будущие технологии и на новые компьютеры единственное в играх проигрышь пока заметен, Managed DirectX 9 почти на 30% проигрывает по скорости, но скоро ты и этого думаю не заметишь


EZH
Для баз данных Шарп помоему просто находка
Автор: sdubovitsky
Дата сообщения: 31.01.2007 23:28

Цитата:
А как с быстродействием программ под платформу .NET? JIT компиляция сильно тормозит реальные проекты?

Один из проектов внедрялся в том числе и на win2000 на машинах с пнями от 200 МГц. Сервер (WebServices) деплоился на PII-400. Основная задача сервера - сохранение в БД. Ничего, одновременно 15 человек работали без проблем. Да, отработки системы ждали, но даже не по 5 сек. Основная проблема была при деплое клиентов. Надо было проставить FW, SP к нему, MDAC и само приложение.

Во втором framework-е изменили сериализацию DataSet-ов. Часть проблем это снимает, передача, при которой объекты сериализуются, меньше жрет ресурсов.
Автор: Quicker
Дата сообщения: 02.02.2007 09:33
Привет, братья - программеры!
Раньше писал на Delphi, сейчас перехожу на C#.
ЧТО ЗНАЧИТ ТЕРМИН "АССОЦИАЦИИ КЛАССА"?
/В ООП маленько разбираюсь, но этого понятия не встречал/
Автор: ull
Дата сообщения: 02.02.2007 11:01
Привет, раньше программировал на делфи , сейчас постепенно перехожу на C# , в о бщем задача у меня следующего хорактера, нужно написать Web клиент, начал всё описывать через socket т.е. подключение передача запроса, получение ответа, всё норма, единственное
возникла проблема нужно было пропарсить HTTP заголовки, чтобы вытащить параметры: код ответа сервера, тип данных, размер для случая закачки файла, кодировка и т.д. плюс обрезать заголовок от тела самих данных, по хорошему это мелочи но очень нудные, я подумал не ужели в C# нет подобного класса который бы это всё делал, В MSDN нашёл такие классы и примеры но проблемма в следующем вот страница с примерами из MSDN , вот это пример программы получения web страницы http://samples.gotdotnet.com/quickstart/howto/doc/WebRequests/clientGET.aspx
всё отлично работает, но работает на компе с прямым интернет IP т.е. без прокси....
В корпоративной сети с использованием ISA прокси сервера возникли проблемы, тестовый клиент отказывается работать, хотя не законченный мой написанный с исп. socket работает без проблем, я нашел в MSDN такой пример еспользования прокси:


Цитата:
[/q]
WebRequest req = new WebRequest.Create("http://www.contoso.com/");
req.Proxy = new WebProxy("http://alternateproxy:80/");[q]


по аналогии описываю в примере свой ничего не катит, повторюсь хотя с машины с прямым интернет ip ПРОБЛЕМ НЕТ, Что может быть не так, в чём проблема подскажите...
Автор: sdubovitsky
Дата сообщения: 02.02.2007 11:32
ull
Прокси на работе требует авторизации?
Автор: ull
Дата сообщения: 02.02.2007 12:43
Авторизация не требуется, проски microsoft ISA FireWall клиент автоматом перенаправляет все запросы на прокси, поэтому всё должно и без прокси работать, т.к. через сокет без прокси всё работает вот пример:

Делаем конэкт...

private static Socket connectSocket(string server, int port)
{
Socket s = null;
IPHostEntry iphe = null;


try
{
// Get host related information.
iphe = Dns.Resolve(server);


// Loop through the AddressList to obtain the supported AddressFamily. This is to avoid
// an exception to be thrown if the host IP Address is not compatible with the address family
// (typical in the IPv6 case).
foreach (IPAddress ipad in iphe.AddressList)
{
IPEndPoint ipe = new IPEndPoint(ipad, port);

Socket tmpS =
new Socket(ipe.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

tmpS.Connect(ipe);

if (tmpS.Connected)
{
s = tmpS;
break;
}
else
continue;
}
}

catch (SocketException e)
{
MessageBox.Show("SocketException caught!!!\r\n" + "Source : " + e.Source + "\r\n" + "Message : " + e.Message);

}
catch (Exception e)
{
MessageBox.Show("Exception caught!!!\r\n" + "Source : " + e.Source + "\r\n" + "Message : " + e.Message);

}
return s;

}

После получаем данные ...

public static string socketSendReceive(string server_str)
{

Uri siteUri = new Uri(server_str);


string server = siteUri.Host;
int port = siteUri.Port;
//Set up variables and String to write to the server.
Encoding Def = Encoding.Default;
Encoding ASCII = Encoding.ASCII;
string Get = "GET " + siteUri.PathAndQuery + " HTTP/1.1\r\nHost: " + server +
"\r\nConnection: Close\r\n\r\n";
Byte[] ByteGet = ASCII.GetBytes(Get);
Byte[] RecvBytes = new Byte[256];


String strRetPage = null;


// Create a socket connection with the specified server and port.
Socket s = connectSocket(server, port);

if (s == null)
return ("Connection failed");

// Send request to the server.
s.Send(ByteGet, ByteGet.Length, 0);


// Receive the server home page content.
Int32 bytes = s.Receive(RecvBytes, RecvBytes.Length, 0);


strRetPage = strRetPage + Def.GetString(RecvBytes, 0, bytes);


while (bytes > 0)
{

bytes = s.Receive(RecvBytes, RecvBytes.Length, 0);
strRetPage = strRetPage + Def.GetString(RecvBytes, 0, bytes);

}


return strRetPage;
}

Всё отрабатывает на ура, по идеи и тот пример должен без проблем отрабатывать...


А по хорошему вопрос с авторизацией тоже очень интересен, так если прийдётся в других сетках данное П.О. размещать да и для общего понимания на будующее интересно..
Автор: Dem_anywhere
Дата сообщения: 03.02.2007 17:29
С проксей - у меня примерно так (работает):


Код: Uri HttpSite = new Uri(args[i]);

// Create the request object
HttpWebRequest wreq = (HttpWebRequest) WebRequest.Create(HttpSite);

wreq.Proxy = new WebProxy("127.0.0.1:8080",true);

HttpWebResponse result = (HttpWebResponse)wreq.GetResponse();
Stream sr = result.GetResponseStream();
Автор: V0lt
Дата сообщения: 03.02.2007 20:03
Dem_anywhere

Цитата:
Почему-то без "true" оно не хотело....

У меня работало так

Код: WebProxy myProxy = new WebProxy("http://127.0.0.1:8080");
Автор: ull
Дата сообщения: 05.02.2007 15:50
да ничего так и неполучается, уже по всякому пробовал, и в асинхронном режиме, всё хрень, как они эти классы писали ...
а может просто прокся спицефицеская, хотя другое всё на ура работает, непонимаю...
наверное прийдётся компонент свой писать, времени жаль только....
Автор: ull
Дата сообщения: 07.02.2007 09:51
Привет, разобрался, сам просто не внимательным был, всем спасибо за ответы, там дело в общем вот в чём было,в срабатывал exception но сообщение об ошибке не выводилось, а выводился левый текст, решил посмотреть сообщение об ошибке, а там 407 авторизация прокси, а я протормазил не разобрав ошибку искал левое что-то, видно по умолчанию при использовании сокетов система автоматом посылает данные учётной записи, и авторизуется, вот всё и происходило, поэтому я незаморачивался с этим, а вот при использовании WebRequest эти данные для прокси нужно указывать, вот в этом то и дело было, ещё и админы наши немогли мне толково обьяснить про авторизацию... просто проскя у нас явно не указывается как я писал на каждой машине стоит клиент прокси, который автоматом всё на прокси пересылает, поэтому у меня всё заработало так без явного указания прокси, но с явным определением данных авторизации прокси , в общем к тому примеру просто добавил одну строчку перед получением ответа, и проблем не стало:

Код: WebResponse result = null;
WebRequest req = WebRequest.Create(url);
req.Proxy.Credentials = CredentialCache.DefaultNetworkCredentials;
result = req.GetResponse();
Автор: V0lt
Дата сообщения: 03.03.2007 07:12
Помогите разобраться как изменять размеры формы.
написал следующее

Код: using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked)
{
Form1.Width += 200;
}
else
{
Form1.Width -= 200;
}
}

}
}

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102

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


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