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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

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

AutoIT



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Народ помогите кто шарит.  
Начал писать "надстройку" на uTorrent, и наткнулся на следующую проблему - на мой взгляд некорректно указанны флаги состояний при запуске приложения при изменении статуса торрента. Поясняю:  
 
1. Язык C# (NFW v4.0)  
2. Приложение тут.  
3. Исходник здесь.
4. В Настройках программы (uTorrent -> Настройка -> Конфигурация -> Дополнительно -> Запустить программу -> Выполнить эту программу при изменении торрента) прописана следующая строка (без одинарных кавычек) - '"E:\Творчество & Кодинг\C++, C#\Projects\Test Projects\CommandLine\CommandLine\bin\Debug\CommandLine.exe" -"%F", -"%D", -"%N", -%S'.  
5. Для тех кому лень выкачивать структура Enum'a:  
       
Код:
[Flags]  
        public enum State  
        {  
            Started = 1,  
            Checking = 2,  
            StartAfterCheck = 4,  
            Checked = 8,  
            Error = 16,  
            Paused = 32,  
            Auto = 64,  
            LoadCompleate = 128  
        }

 
Параметр Статуса получаю так:

Код:
((State)Convert.ToInt32(Command[4].TrimStart('-'))).ToString()

 
 
Результат: приложение отрабатывает, запускается, все параметры корректно передаются программе, но параметром %S передаются некорректные данные, как то: при постановке на паузу - параметр 3 (Started, Checking), при снятии с паузы - параметр 6 (Checking, StartAfterCheck), при остановке торрента - параметр 13 (Started, StartAfterCheck, Checked) и т.д.  
 
Примечание: расшифровка параметров взята из сноски, см. п.4.  
 
Помогите разобраться что не так с флагами состояния торрента

Всего записей: 77 | Зарегистр. 04-12-2008 | Отправлено: 11:42 09-04-2011
niichavo



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
EF 4.1 Code First наследование и отношение многие-ко-многим. Увы, не работает
 
Есть классы:

Код:
public abstract class Owner
{
    public Guid Id { get; set; }        
}
 
public class User : Owner
{
    string _Login;
 
    public User()
    {
        Groups = new List<Group>();
    }
 
    public string Login { get; set; }
    public virtual ICollection<Group> Groups { get; set; } // группы, в которых состоит пользователь
}
 
public class Group : Owner
{
    public Group()
    {
        Members = new List<Owner>();
    }
 
    public string Name { get; set; }
    public virtual ICollection<Owner> Members { get; set; } // члены группы - пользователи и/или группы
}
 
public class TestDbContext : DbContext
{
    public DbSet<Owner> Owners { get; set; }
}
 

 
При добавлении пользователя:

Код:
using (var db = new TestDbContext())
{
    var user1 = new User { Id = Guid.NewGuid(), Login = "admin" };
    var user2 = new User { Id = Guid.NewGuid(), Login = "user" };
    var group1 = new Group { Id = Guid.NewGuid(), Name = "administrators" };
    var group2 = new Group { Id = Guid.NewGuid(), Name = "users" };
 
    user1.Groups.Add(group1);
    user1.Groups.Add(group2);
    user2.Groups.Add(group2);
 
    group1.Members.Add(user1);
    group2.Members.Add(user1);
    group2.Members.Add(user2);
 
    db.Owners.Add(user1); // исключение тут возникает
    db.Owners.Add(user2);
    db.SaveChanges();
}

 
Возникает исключение:

Код:
An exception of type 'System.InvalidOperationException' occurred in System.Data.Entity.dll but was not handled in user code
 
Additional information: Multiplicity constraint violated. The role 'Group_Members_Source' of the relationship 'WebTaxiDeshevleNet.Group_Members' has multiplicity 1 or 0..1.

 
Что сделать, чтобы заработало?

Всего записей: 836 | Зарегистр. 14-09-2005 | Отправлено: 16:44 10-04-2011
BlackVetal



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
niichavo
Насколько я понимаю - у тебя получается связи в обе стороны. Это возможно вызызвает ошибку, так как в одной таблице уже есть объект, а в другой таблице объекта нет еще, но при этом происходит попытка установить связь между таблицами (объектами).
Вариант решения - сначала поместить объекты в БД (user и group), а потом устанавливать связь (user1.Groups.Add(group1);) ...

Всего записей: 1094 | Зарегистр. 13-11-2005 | Отправлено: 08:47 11-04-2011
niichavo



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BlackVetal
Возможно ты прав. Попробую. Правда мне кажется, что проблема не решится. Ибо этот код генерит одну таблицу Owner. Ну а если пользователь входит, например, в 2-е группы, то нужны 2-е записи c одинаковым уникальным ключём Id. Будет исключение при добавлении второй записи. Т.е. в данном случае наследование работает, а отношение многие-ко-многим нет. Как "заставить" EF генерить бОльшее количество таблиц с правильными связями и чтоб наследование не потерялось - это вопрос.

Всего записей: 836 | Зарегистр. 14-09-2005 | Отправлено: 10:30 11-04-2011 | Исправлено: niichavo, 10:31 11-04-2011
Andryshok



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Коллеги, а не знает ли кто как изменить  цвет  нужной  строкиа у XtraGrid от DevExpress, но не в событии customDraw , а допустим жамкаю на кнопку, идет перебор строк таблицы и если допустим произошло событие - то меняется цвет i-той сроки, а не произошло - не меняется

Всего записей: 649 | Зарегистр. 03-06-2009 | Отправлено: 19:40 11-04-2011
niichavo



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Получилось!
 
Класс Group:

Код:
 
public class Group : Owner  
{  
    public Group()  
    {  
        Members = new List<Owner>();  
    }  
 
    public string Name { get; set; }  
    public virtual ICollection<User> MemberUsers { get; set; }
    public virtual ICollection<Group> MemberGroups { get; set; }
}
 

Всего записей: 836 | Зарегистр. 14-09-2005 | Отправлено: 23:05 11-04-2011 | Исправлено: niichavo, 23:06 11-04-2011
BlackVetal



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Andryshok
Событие StyleRow - получаеш строку, береш Appearance и меняеш цвет (например, BackColor)

Код:
 
private void gridView1_RowStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs e)
        {
            DevExpress.XtraGrid.Views.Grid.GridView view = gridControl1.MainView as DevExpress.XtraGrid.Views.Grid.GridView;
            try
            {
                decimal _номер = (decimal)view.GetRowCellValue(e.RowHandle, gridColumn_номер);
                if (textEdit_Seach.Text != "" && e.RowHandle >= 0 && _номер != 0)
                    if (_номер == decimal.Parse(textEdit_Seach.Text))
                    {
                        view.Appearance.OddRow.BackColor = Color.Yellow;
                        view.Appearance.EvenRow.BackColor = Color.Yellow;
                    }
                    else
                    {
                        view.Appearance.OddRow.BackColor = Color.AliceBlue;
                        view.Appearance.EvenRow.BackColor = Color.MintCream;
                    }
            }
            catch
            {
            }
        }
 
 

 
ЗЫ
есть тема на форуме по девкам - жми тут

Всего записей: 1094 | Зарегистр. 13-11-2005 | Отправлено: 06:33 12-04-2011
Andryshok



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BlackVetal  СПС,  но мне нужно раскрасить строки не в событиях грида, а извне

Всего записей: 649 | Зарегистр. 03-06-2009 | Отправлено: 07:46 12-04-2011
deusex3

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Перенаправлено в "Использование DevExpress (часть 4) "

Всего записей: 20 | Зарегистр. 08-11-2006 | Отправлено: 20:04 12-04-2011 | Исправлено: deusex3, 20:06 12-04-2011
BlackVetal



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Andryshok
Я в принцепе тебя понял - я тебе такой код и показал: фон меняет цвет при поиске - если на форме имеется результат.

Всего записей: 1094 | Зарегистр. 13-11-2005 | Отправлено: 07:02 13-04-2011
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как задать цвет фона компоненту WebBrowser? Дело в том что когда он перерисовывается сначала стирает всё белым, а потом рисует страничку с зелёным фоном. Очень некрасиво.

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 07:49 15-04-2011
moverast



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
в Visual Studio 2010 есть удобный инструмент для сохранения настроек программы "класс Settings", но проблема в том, что он сохраняет файл с настройками по умолчанию в "c:\Users\user\AppData\...".
Я хочу сохранять настройки в каталог с программой, что бы программа была portable. Как изменить путь куда сохраняется файл класса Settings?

Всего записей: 589 | Зарегистр. 26-11-2007 | Отправлено: 14:25 18-04-2011 | Исправлено: moverast, 14:28 18-04-2011
May_Johnson



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
moverast
насколько я знаю никак,
для решения вашей проблемы я бы посоветовал руками написать класс настроек и сереализовывать его рядом с вашей программой

Всего записей: 47 | Зарегистр. 10-02-2008 | Отправлено: 18:07 18-04-2011
BlackVetal



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
moverast
Попробуйте в свойствах у файла Settings.settings в проекте исправить свойство "Copy to Output Directory" ...

Всего записей: 1094 | Зарегистр. 13-11-2005 | Отправлено: 06:31 19-04-2011
moverast



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

Цитата:
moverast
Попробуйте в свойствах у файла Settings.settings в проекте исправить свойство "Copy to Output Directory" ...

бесполезно

Всего записей: 589 | Зарегистр. 26-11-2007 | Отправлено: 07:16 19-04-2011
Andryshok



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BlackVetal   moverast  Не мучьте класс Settings, все равно файлик будет в папке пользователя, тут как вариант либо вариант от May_Johnson либо качните бесплатную сборку Nini , находится  
ТУТ , если нужно под Net 4 - перекомпилируйте ее, она с исходниками, и все решится, и будет программа portable, и не только - классу можно указывать расположение ну и само собой имя файла настроек, типа как в delphi

Всего записей: 649 | Зарегистр. 03-06-2009 | Отправлено: 07:25 19-04-2011 | Исправлено: Andryshok, 09:29 19-04-2011
moverast



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Andryshok
по твоей ссылке "Not Found"

Всего записей: 589 | Зарегистр. 26-11-2007 | Отправлено: 09:25 19-04-2011
Andryshok



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
moverast  Ссылку в предыдущем посте исправил, переходите и качайте

Всего записей: 649 | Зарегистр. 03-06-2009 | Отправлено: 09:30 19-04-2011
moverast



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
с настройками это первый минус с которым я столкнулся перейдя с delphi на C#. жаль...

Всего записей: 589 | Зарегистр. 26-11-2007 | Отправлено: 11:45 19-04-2011
Andryshok



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

Цитата:
с настройками это первый минус с которым я столкнулся перейдя с delphi на C#. жаль...
Я сам перешел на C# , и всем доволен, нужно просто выбросить из головы привычки VCL и все пойдет, хотя тут речь не о переходе впрочем, вы получили новые знания и это большой плюс, ощутите мощь C# и платформы Net., выбирайте язык программирования который наиболее подходит для поставленной задачи.
 
В конце концов можно самому написать сборку которая будет хранить настройки в XML и читать их от туда (ведь в дотнете рабртать с XML милейшее дело , к слову -  за это отвечает класс XmlDocument ,  подключите - using System.Xml; ), это займет не более 3 часов - и вы получите в распоряжение свой собственный класс и будете на 100 % знать как он работает , не стоит вешать нос и отказываться от поставленной цели из таких мелочей
 
Вот пример

Код:
 
string s = Application.StartupPath; - получаем директорию с нашим приложением
            XmlDocument spisok = new XmlDocument(); - создаем новый экземляр класса
            spisok.Load(s + "\\settings.xml"); - грузим из файла;
делаем тут с ним что угодно.......
 

 
B всего делов то

Всего записей: 649 | Зарегистр. 03-06-2009 | Отправлено: 12:18 19-04-2011 | Исправлено: Andryshok, 12:30 19-04-2011
Открыть новую тему     Написать ответ в эту тему

Страницы: 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