Ответы пользователя по тегу Visual Studio
  • Куда пропал конструктор Visual Studio?

    tomnolane
    @tomnolane
    профессиональный разработчик
    Раскройте файл Form1.cs (нажмите на стрелку слева от файла) и там кликните левой кнопкой мыши два раза на Form1.Designer.cs

    +

    на скрине вижу, что что-то также называется Form1 но без расширения (предпоследний на скрине)... может переименовали что-то?. Если уж совсем не помогло -> создайте новый проект и скопируйте заново код
    UPD:
    +
    5e2a7bc70ba76406263976.jpeg
    найдите нечто похожее: Restore workspace
    UPD:
    +
    Обратите внимание на второй файл Form1 (без расширения). Что это за файл? Может он мешает?
    Ответ написан
    3 комментария
  • Как получить *.mdf файл из Access?

    tomnolane
    @tomnolane
    профессиональный разработчик
    добавляем в rerefences библиотеку из COM: Miscrosoft ADO Ext.6.0 for DLL and Security
    59dd1c9316f57094123256.png
    далее рабочий код:
    using System;
    using ADOX;
    using System.Data.OleDb;
    using System.Data;
    using System.IO;
    
    namespace ConsoleApplication4
    {
        class Program
        {
            static void Main(string[] args)
            {
                CreateMdb("toster_ru.mdb");
                string fileNameWithPath = Environment.CurrentDirectory + "\\toster_ru.mdb";
    
                CreateTableInToMdb(fileNameWithPath);
                InsertToMdb(fileNameWithPath);
                UpdateToMdb(fileNameWithPath);
    
                var myDataTable = new DataTable();
                using (var conection = new OleDbConnection("Provider = Microsoft.JET.OLEDB.4.0;  Data Source = " + fileNameWithPath))
                {
                    conection.Open();
                    var query = "Select info From my_table";
                    var adapter = new OleDbDataAdapter(query, conection);
                    adapter.Fill(myDataTable); 
                    Console.WriteLine(myDataTable.Rows[0][0].ToString()); //output: toster2.ru
                    Console.ReadKey();
                }
            }
    
            static void CreateMdb(string fileNameWithPath)
            {
                if (File.Exists(fileNameWithPath))
                    return;
    
                Catalog cat = new Catalog();
                string connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Jet OLEDB:Engine Type=5";
                cat.Create(String.Format(connstr, fileNameWithPath));
                cat = null; 
            }
    
            static void InsertToMdb(string fileNameWithPath)
            {
                var con = new OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = " + fileNameWithPath);
                var cmd = new OleDbCommand();
                cmd.Connection = con;
                cmd.CommandText = "insert into my_table (ID, [Info], [text])  values (@ID, @Info, @text);";
                cmd.Parameters.AddWithValue("@ID", 1);
                cmd.Parameters.AddWithValue("@Info", "toster.ru");
                cmd.Parameters.AddWithValue("@text", "blabla");
                con.Open(); 
                cmd.ExecuteNonQuery();
                con.Close();
            }
    
            static void UpdateToMdb(string fileNameWithPath)
            {
                var con = new OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = " + fileNameWithPath);
                var cmd = new OleDbCommand();
                cmd.Connection = con;
                cmd.CommandText = "UPDATE my_table SET [Info] = ?, [text] = ? WHERE ID = ?;";
                cmd.Parameters.AddWithValue("@p1", OleDbType.VarChar).Value = "toster2.ru";
                cmd.Parameters.AddWithValue("@p2", OleDbType.VarChar).Value = "blabla2";
                cmd.Parameters.AddWithValue("@p3", OleDbType.VarNumeric).Value = 1;
                con.Open();
                cmd.ExecuteNonQuery();
                con.Close();
            }
    
            static void CreateTableInToMdb(string fileNameWithPath)
            {
                try
                {
                    OleDbConnection myConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + fileNameWithPath);
                    myConnection.Open();
                    OleDbCommand myCommand = new OleDbCommand();
                    myCommand.Connection = myConnection;
                    myCommand.CommandText = "CREATE TABLE my_table([ID] NUMBER, [Info] TEXT, [text] TEXT)";
                    myCommand.ExecuteNonQuery();
                    myCommand.Connection.Close();
                }
                catch { }
            }
        }
    }


    UPD
    MDF
    Ответ написан
  • Как освободить ресурсы Control'а не вызывая конструктор?

    tomnolane
    @tomnolane
    профессиональный разработчик
    1) Control = null;
    2) grid1.Children.Remove(Control);
    3) //если WPF Control.Visibility = Visibility.Hidden;
    //если WindowsForm
    Control.Visible = false;
    Ответ написан
    Комментировать
  • Какие требования для разработки приложений под Windows XP и выше?

    tomnolane
    @tomnolane
    профессиональный разработчик
    Какие требования для разработки приложений под Windows XP и выше?

    использовать максимум .Net framework 4.0 (не выше, можно ниже). И синстаксис c#4-5 версий, т.к. XP понятия не имеет что это значит на версии c#7:
    string my_text = "Hello";
    string nickname = "ogpol32!";
    Console.WriteLine(string.Format($"({my_text}, {nickname})"));

    ещё можно добавить, что постараться сделать приложение максимально не требовательно к ресурсам компьютера/памяти (хотя это касается любых приложений под любые ОС)
    и (в идеале) постараться использовать как можно меньше костылей и дополнительных(не родных) библиотек в проекте. Вообщем, чем проще, тем лучше.
    И есть ли существенная разница?

    существенная. Я лично пишу под/на .Net 4.5 и (конечно) с XP пролетаю... Между 4 и 4.5 разница достаточно существенная: особенно касается обработки исключений и многопоточности. Но увы и ах... на .Net 4 придётся пожертвовать "синтаксическим сахаром" в результате чего, код будет менее читабелен и удобен.
    Как вы относитесь к Telerik?

    к сожалению я им не пользовался( и не могу подсказать, разве что, Telerik заточен под .Net 4 Client (не ниже)
    fa1746047c24437d8854507ff13331e2.PNG

    вообщем, используйте .Net framework 4 Client и версию c#4-5 и да прибудет с вами сила...

    upd
    677a22bb956243e8b66c717184bcd4bf.PNG
    Ответ написан
    1 комментарий
  • Visual Studio 2010 Error MSB4014 что делать?

    tomnolane
    @tomnolane
    профессиональный разработчик
    You log on a computer by using a user name whose length is longer than 19 characters, excluding the domain name or the computer name. When you try to build a Microsoft Visual C++ 2010 project, you receive an error message that resembles the following:
    Error MSB4014: The build stopped unexpectedly because of an internal failure.


    оф. источник и пакет исправлений:тык
    Ответ написан
    6 комментариев
  • Найти сумму элементов расположенных между 1 и 2 отрицательными элементами?

    tomnolane
    @tomnolane
    профессиональный разработчик
    глаза разбегаются и появляются много слов, начинающих с "почему?" и "зачем это..."
    я опущу комментарии некоторые и просто дам вам очень простой способ, как через while
    Найти сумму элементов расположенных между 1 и 2 отрицательными элементами

    //допустим, в ниже переменных вы тем или иным способом уже получили какие-то данные
     double[] val1 = {-13.2, -14.8, 23, 0, -2.1, -6};
                double[] val2 = { -18.8, -11.2, 13, 0, -4.5, -2 };
                double sum = 0;
                int temp = 0;
                int temp2 = 1;
    
                //между массивами c одинаковым индексом
                while (sum == 0)
                {
                    if (val1[temp] < 0 && val2[temp] < 0)
                    {
                        sum = val1[temp] + val2[temp];
                    }
                    temp++;
                }
                Console.WriteLine("Сумма: " + sum);
    
                sum = 0; temp = 0;
                //между массивами c разным индексом
                while (sum == 0)
                {
                    if (val1[temp] < 0)
                    {
                        sum += val1[temp];
                        bool yeap = false;
                        while (yeap == false)
                        {
                            if (val2[temp2] < 0) { sum += val2[temp2]; break; }
                            temp2++; 
                        }
                        break;
                       
                    }
                    temp++;
                }
                Console.WriteLine("Сумма: " + sum);
    
    
                //1) если даны два массива с перемешанными данными и нужно найти
                //у каждого массива свои отрицательные числа и сложить (1 и 2-ой)
                sum = 0; temp = 0; temp2 = 0;
                double[] val3 = { -13.2, -14.8, -23, 0, -2.1, -6 };
                double[] val4 = { 2, -11.2, 13, 10, -4.5, 5 }; 
                
                //для 1 массива
                while (temp2 < 2)
                {
                    if (val3[temp] < 0)
                    {
                        sum += val3[temp];
                       temp2++;
                    }
                    temp++; 
                }
                Console.WriteLine("Сумма первых двух отрицательных чисел у массива val3: " + sum);
    
                sum = 0; temp = 0; temp2 = 0;
                //для 2 массива (аналогично)
                while (temp2 < 2)
                {
                    if (val4[temp] < 0)
                    {
                        sum += val4[temp];
                        temp2++;
                    }
                    temp++;
                }
                Console.WriteLine("Сумма первых двух отрицательных чисел у массива val4: " + sum);
    
                //2) если даны два массива с перемешанными данными и нужно найти
                //1 отрицательное число у первого массива со вторым отрицательным числом у второго массива
                sum = 0; temp = 0; temp2 = 0;
                int temp3 = 0;
                while (temp2 < 1 || temp3 < 2)
                {
                    if (val3[temp] < 0 && temp2 == 0)
                    {
                        sum += val3[temp];
                        temp2++;
                    }
    
                    if (val4[temp] < 0 && temp3 < 2)
                    {
                        if(temp3 == 1) { sum += val4[temp]; }
                        temp3++;
                    }
    
                    temp++;
                }
                Console.WriteLine("Сумма первых двух отрицательных чисел у массивов val3(1 отрицательное) и у val4(2 отрицательное): " + sum);


    п.с. рекомендую поощрять людей, которые вам помогают (судя по вашему "портфолио" - вы не особо используете кнопки "отметить решением" и "нравится", а ведь даже кошке доброе слово приятно)
    Ответ написан
    Комментировать
  • Разные иконки для самой программы и в панели задач на C# !?

    tomnolane
    @tomnolane
    профессиональный разработчик
    была аналогичная проблема и суть её в том (если у вас ОС WINDOWS), что используется кеширование папок, эскизов со всеми значками и т.д. и используются старые... точно не помню как именно очищал (то ли через программу CCleaner) то ли вручную...

    ОЧИЩЕНИЕ КЭШ ЭСКИЗОВ

    Делается это при помощи программы «Очистка диска». Идем в «Мой компьютер», правой кнопкой мыши кликаем по «Локальный диск С». В меню выбираем «Свойства». Открываем вкладку «Общие»

    Далее выбираем из списка нужный нам диск, в нашем случае это «С».
    В открывшемся окне помимо необходимого можно выбрать и дополнительные параметры очистки. Затем нажимаем «ОК» и «Удалить файлы».
    При желании кеширование эскизов можно вообще отключить. Делается это в редакторе локальной групповой политики операционной системы (Win+R вводим команду gpedit.msc и «ОК»).


    upd

    после очистки - значки (после перекомпиляции) обновились
    Ответ написан
    Комментировать
  • Почему ValueTuple не работает из коробки?

    tomnolane
    @tomnolane
    профессиональный разработчик
    может поможет....

    тут тоже самое пишут
    Ответ написан
    Комментировать
  • Почему не работают кортежи?

    tomnolane
    @tomnolane
    профессиональный разработчик
    обновите/скачайте .Net Framework
    в VS2015 при выходе (и до сих пор) были/есть баги разные. И в VS2017 с вероятностью 99,9% они тоже есть.
    Ответ написан
    Комментировать
  • При попытке компиляции появляется ошибка - Входная строка имела неверный формат,в чем проблема?

    tomnolane
    @tomnolane
    профессиональный разработчик
    тут (проблема) с пробелами:
    Console.WriteLine("SC.color ={ 0},SC.ves ={ 1},SC.power ={ 2},SC.transmission ={ 3},SC.complete_drive{ 4}", SC.color, SC.ves, SC.power, SC.transmission, SC.complete_drive);

    уберите пробелы:
    Console.WriteLine("SC.color ={0},SC.ves ={1},SC.power ={2},SC.transmission ={3},SC.complete_drive={4}", SC.color, SC.ves, SC.power, SC.transmission, SC.complete_drive);

    (где { 0}, { 1} ... нужно {0}, {1})
    Ответ написан
    1 комментарий
  • Как парсить HTML при помощи HttpClient?

    tomnolane
    @tomnolane
    профессиональный разработчик
    способов много, но предложу использовать универсальный, пусть это и костыль, но много место не занимает, дополнительные (сторонние библиотеки не нужны...):
    using System;
    using System.IO;
    using System.Net;
    using System.Net.Http;
    using System.Text.RegularExpressions;
    using System.Threading.Tasks;
    
    namespace ConsoleApplication3
    {
        public static class Program
        {
            private static string html = "Ошибка";
    
            private static void Main()
            {
                ShowTags("https://www.yandex.ru/","a");
                Console.ReadKey();
            }
    
            private static async void ShowTags(string my_url, string tag = "a") // Тег по умолчанию для поиска, ищем теги <a></a>
            { 
                // Загружем страницу 
               string data = await GetHtmlPageText(my_url);
    
               if (!data.Contains("Ошибка"))
                { 
                    string pattern = string.Format(@"\<{0}.*?\>(?<tegData>.+?)\<\/{0}\>", tag.Trim());
                    // \<{0}.*?\> - открывающий тег
                    // \<\/{0}\> - закрывающий тег
                    // (?<tegData>.+?) - содержимое тега, записываем в группу tegData
    
                    Regex regex = new Regex(pattern, RegexOptions.ExplicitCapture);
                    MatchCollection matches = regex.Matches(data);
    
                    foreach (Match matche in matches)
                    {
                        Console.WriteLine(matche.Value);
                        Console.WriteLine("Содержание:");
                        Console.WriteLine(matche.Groups["tegData"].Value);
                        Console.WriteLine("---------------------------");
                    } 
                }
                else
                {
                    Console.WriteLine("Ошибка при загрузке со страницы: " + my_url);
                }
            }
    
            private static async Task<string> GetHtmlPageText(string url)
            {  
                await Task.Run(async()=>{
                   
                    // ... используем HttpClient.
                    using (HttpClient client = new HttpClient())
                    using (HttpResponseMessage response = await client.GetAsync(url))
                    using (HttpContent content = response.Content)
                    {
                        // ... записать ответ
                        string result = await content.ReadAsStringAsync();
                        if (html != null)
                        {
                            html = result;
                        }
                    } 
                });
                return html;
            }
        }
    }


    результат на примере yandex.:
    <a href="http://mail.yandex.ru"onclick="c(this,17,1080)">Войти&nbsp;в&nbsp;почту</a>
    Содержание:
    Войти&nbsp;в&nbsp;почту


    Regex работает быстрее чем остальные парсеры
    Ответ написан
  • С помощью чего можно открыть pdf-файл?

    tomnolane
    @tomnolane
    профессиональный разработчик
    может через это ??? и вот ещё
    Ответ написан
    Комментировать
  • Visual Studio для слабого ПК-какой выбрать?

    tomnolane
    @tomnolane
    профессиональный разработчик
    могу ошибаться, но VS 2015 на 7-ку не устанавливается (минимум по требованиям 8 и выше, т.к. версия c#6-7 у VS2015, win7 не поддерживает c#6-7 версию).
    п.с. этот вывод сделал после того, как хотел установить себе. Так что либо 2012 либо 2013 версию.
    п.с.с. также поддерживаю мнение об Visual Studio Code (легче)
    п.с.с.с. на крайняк - Visual Studio Express (2013)
    п.с.с.с.с. .Net framework 4.5 (минимум 4) - нужно установить
    Ответ написан