Задать вопрос
  • Как в sql выбрать записи, зная их id?

    EreminD
    @EreminD
    Кое-что умею
    Немного не понятен вопрос
    Пока точно можно сказать что поиск делается вот так. Вам остается подставлять свой набор idшников
    select * from table where id in (1, 2, 3, 4 ....)
    Ответ написан
    2 комментария
  • Как получить список доступных динамичных значений C#?

    EreminD
    @EreminD
    Кое-что умею
    Можете использовать словарь. Словарь хранит связки ключ-значение (наименование - сила, в вашем случае)
    Ключ должен быть уникальным (не повторяться)
    При объявлении, указывается тип ключа и тип значения. Например, для Dictionary ключ будет строкой, а значение - целым числом
    //создали словарь
    Dictionary<string, int> Fists = new Dictionary<string, int>()
    //наполнили
    Fists["light"] = 10;
    Fists["middle"] = 50;
    Fists["hard"] = 100;
    Fists["ult"] = 350;
    
    //получаем значение
    int fightPower = Fists["ult"];


    Можно создать структуру, где будут поля Имя (наименование) и сила и использовать список (List)
    Список - это как массив, только размер не нужно задавать и на лету значения можно легко удалять и добавлять
    List<attack> Fists = new List<attack>()
    Fists.Add(new Attack(){ Name = "light", Power = 10}) 
    Fists.Add(new Attack(){ Name = "middle", Power = 50}) 
    ....
    
    //получаем значение
    int fightPower = Fists[0];


    И на будущее. Про изменение размера массивов. Почитайте, есть статический класс Array и у него есть метод Resize(). Ему можно передать свой массив и произойдет изменение размера. Может, вам вообще такой вариант подойдет (хотя нет. его вообще никто не юзает)

    UPD: потратьте время, изучите статью https://msdn.microsoft.com/ru-ru/library/6tc79sx1(...
    Потом не будет проблем с выбором коллекции
    Ответ написан
  • Как сделать правильную рекурсию?

    EreminD
    @EreminD
    Кое-что умею
    Не понятно, пока, в чем сложность
    Код тута
    private string GetTree(string kode)
    		{
    			OleDbCommand select_array = new OleDbCommand("SELECT * FROM table WHERE PARENTKOD = '" + kode + "'");
    			DataTable dt_array = new DataTable(select_array);
    
    			List<string> array = new List<string>();
    			string ids = string.Empty;
    
    			array.Add(dir);
    			foreach (DataRow dd_s in dt_array.Rows)
    			{
    				//здесь храним текущий код
    				string CurrentKode = dd_s["KOD"].ToString();
    				//если он есть и/или не пустой
    				if (!String.IsNullOrEmpty(CurrentKode))
    				{
    					//записываем его
    					array.Add(CurrentKode);
    					//получаем все записи по этому самому коду
    					GetTree(CurrentKode);
    				}
    				//а еще проблема вот тут может быть, т.к. return - это выход из функции. 
    				//Значит, после отработки для первого dd_s из dt_array.Rows, будет выход из функции и все
    				return array.Count().ToString();
    			}
    			//логичнее, вот тут указать
    			//return array.Count().ToString();
    		}

    Ответ написан
    Комментировать
  • Подойдет ли для чайника книга Изучаем C#, Эндрю Стиллмен?

    EreminD
    @EreminD
    Кое-что умею
    Мда, сложно все.
    Ну ставите себе целью проект. Начинаете его выпиливать
    Наткнулись на проблему - гуглите. Если гуглить хорошо, а не просто заплюсованное решение на SO, то можно открыть для себя новый прием/подход/класс/паттерн/термин. Вот про него и читайте-применяйте.
    С первого раза, все равно, красивого чистого кода не выйдет (даже после учебника)
    Зато:
    а) есть чего показывать бате
    б) имея практический опыт, вам проще самому найти пример использования всего того, что вы читаете у Шилдта. Да, делегаты и события - бесполезная штука в калькуляторе. Нужно систему сложнее для таких примеров
    Вот и делайте.
    Словом, чтение учебника - это хорошо. Я тоже читаю. Но чтение никак не исключает практики прямо сейчас
    Ответ написан
    Комментировать
  • Взять value из input, сравнить и вывести?

    EreminD
    @EreminD
    Кое-что умею
    Необходимо взять value из input

    var inpt = document.getElementById("input_id")
    var val = inpt.val()


    сравнить с какимто списком команд,

    вот эта часть непонятна. Пример что ли привидите

    и вывести в дом дерево, то чему соответствует эта команда.

    возможно, это тоже прояснится
    Ответ написан
  • Как сделать такую переменную?

    EreminD
    @EreminD
    Кое-что умею
    простите мне мою глупость. А почему вот так нельзя?
    var currentTitle;
    
    var storage = multer.diskStorage({
        destination: function (req, file, cb) {
            cb(null, '../../../../../../var/www/sources/audio/');
        },
        filename: function (req, file, cb) {
            var all_audio_cut = all_audio.slice(0,-1), ids = 0;
            for(var a = 0; a<all_audio_cut.length; a++)
            {
                if(all_audio_cut[a] == '{') {ids = ids+1;}
            }
            all_audio_cut = all_audio_cut + ',{"id":"' + ids + '","title":' + currentTitle + '}]';// место 1
            var filenames = "mus" + ids + ".mp3";
            all_audio = all_audio_cut;
            fs.writeFile("audio.cfg", all_audio_cut);
            cb(null, filenames);
        },
        onFileUploadComplete: function (file) {
        res.sendStatus(200);
        }
    })
    
    var upload = multer({storage:storage})
    
    app.post('/upload', upload.single('file'), function (req, res) {
        res.send('Аудиозапись была загружена на сервер'); // Место 2
        currentTitle = req.body.title;
    })
    Ответ написан
  • Как осуществить поиск вводимых слов в textBoxt и вывод нужного результата в форме WinForms?

    EreminD
    @EreminD
    Кое-что умею
    а проблема-то в чем?
    пока выглядит так, что вы просто просите написать за вас

    1. Создайте в студии форму
    2. Накиньте текстБокс и кнопку
    3. При клике на кнопку брать текст из текстБокса и искать вхождение в список заранее определенных (либо введенных пользователем) строк

    Пока ничего сложного

    UPD: исходя из того, что у вас есть листБокс (он удобнее), текстБокс и кнопка, получается, такой код
    public Form1()
    		{
    			InitializeComponent();
    		}
    
    		private void button2_Click(object sender, EventArgs e)
    		{
    			string search = textBox2.Text;
    			int index = listBox1.Items.IndexOf(search);
    			listBox1.SelectedIndex = index;
    		}
    	}
    Ответ написан
    4 комментария
  • Почему не работает код?

    EreminD
    @EreminD
    Кое-что умею
    <!doctype html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport"
              content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <script src="script.js" charset="utf-8"></script>
        <title>Document</title>
        <style>
            input[type=text]{
                width: 450px;
                height: 300px;
            }
            #chat{
                float: right;
                width: 500px;
                height: 500px;
            }
        </style>
    
    
    
    
    
    
        <script>
        window.onload = function(){
    <!--запомнили первое окно-->
         var message = document.getElementById('mes');
    <!--запомнили второе окно-->
         var chat = document.getElementById('chat');
    <!--если кто нажал на кнопку-->
         document.getElementById("btn").onclick = function () {
            <!--во второе окно вписываем значение инпута-->
            chat.innerText = message.value;
           <!--чистим инпут--> 
           message.value = "";
           }
        }
        </script>
    
    
    
    
    
    
    </head>
    <body>
    <input type="text" id="mes" placeholder="Введите сообщение">
    <input type="button" id="btn" value="Отправить">
    <div id="chat">
    </div>
    </body>
    </html>
    Ответ написан
    Комментировать
  • Почему Selenium webDriver не может найти элемент на новой странице?

    EreminD
    @EreminD
    Кое-что умею
    адрес страницы в студию!
    вообще, действительно, возможно не дождидается загрузки элемента (но тут надо страницу вживую увидеть, чтоб точно утверждать)
    Если так, используйте ожидания. Неправильный, но простой путь: Thread.Sleep(3000);
    Правильный путь - что-то типа:
    WebDriverWait wait = new WebDriverWait(driver, 30);
    wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("locator")));


    И вот еще:
    если вам нужно проверить, что элемент становится доступным именно по клику на кнопку или какому-то действию (т.е. реакция на действия пользователя), то ок.
    Но если вам просто нужно добраться до какого-то места на странице - старайтесь использовать переходы по URL. Так обеспечивается стабильность.
    Ответ написан
  • В чем фишка Dapper?

    EreminD
    @EreminD
    Кое-что умею
    Первый коммент к той статье:
    Очень мощная штука для массивных запросов. Не нем написан Stack Overflow. Там в документации есть несколько примеров использования: получение строго типизированной коллекции, динамических объектов и запрос без ответа. (как то так). Если бы их здесь вкратце (так удобнее) освеить - было бы здорово :)


    Отличие, пожалуй в том, что у вас происходит маппинг автоматом (судя по статье).
    В ADO.NET, вам надо из ридера самому вручную забирать значения (типа reader.GetInt32(0)). Что не очень приятно, особенно при работе с большим числом сложных таблиц

    Толи дело, когда описываешь класс, делаешь запрос и просишь вернуть экземпляр
    User user = null;
    using (IDbConnection db = new SqlConnection(connectionString))
       {
             user = db.Query<User>("SELECT * FROM Users WHERE Id = @id", new { id }).FirstOrDefault();
       }


    Собственно, вот вам и ORM. Вы не работаете с результатом запроса напрямую. У вас есть возможность сразу получить экземпляр класса и работать с ним.
    А то, что на вход подается SQL-команда - выглядит, в какой-то степени, даже приятно и удобно.

    Еще вот о том, почему Dapper (особенно раздел "Dapper и реляционные запросы" - ваще огонь) - https://msdn.microsoft.com/ru-ru/magazine/mt703432.aspx
    А вот про то, кто быстрее - https://www.exceptionnotfound.net/dapper-vs-entity...
    Ответ написан
    5 комментариев
  • ASP.NET Web API?

    EreminD
    @EreminD
    Кое-что умею
    ща все будет.

    Во-первых, ASP.NET MVC5 = ASP.NET Core
    Остается вопрос: 4ка или Core
    Ключевая идея Core - кроссплатформенность. Предполагается, что его можно хостить (и разрабатывать) не только на Windows.
    Разница в типах служебных файлов (например, где и как хранится список зависимостей или настроек приложения). Но, на чуть более высоком уровне, WebAPI он и есть WebAPI.

    Задайте вопросы:
    • На каком окружении будет располагаться приложение? - окружение позволит определить нужную вам конфигурацию
    • Перспективы развития проекта? - если проект не подразумевает многолетнего развития (написали и просто поддерживаем), то можно обойтись и "традиционным" ASP.NET WebAPI. Если же это будет жить и развиваться много лет, берите Core, чтобы не получилось, что вы работаете с неподдерживаемой технологией (мелкомягкие сейчас будут уделять больше внимания именно ему)
    Ответ написан
    5 комментариев
  • Есть ли разница между такими SQL запросами?

    EreminD
    @EreminD
    Кое-что умею
    * (звездочка) подразумевает, что вы выбираете вообще все.
    Стало быть, сначала выборка из N таблиц, а потом только подсчет итогов

    А иначе, что ему считать?
    Ответ написан
  • Сколько стоит развернуть сайт на ASP NET?

    EreminD
    @EreminD
    Кое-что умею
    Ответ написан
    Комментировать
  • Как можно стилизовать таблицу данных?

    EreminD
    @EreminD
    Кое-что умею
    а какого типа проект?
    вам нужно wpf. Там xaml-разметка открывает много возможностей
    Ответ написан
    4 комментария
  • Автотест обхода сайта по всем страницам и проверка наличия контента?

    EreminD
    @EreminD
    Кое-что умею
    запрос в гугле - "web crawler" или "паук для обхода по сайту"
    самому написать тоже не трудно:
    1. Зашли на страницу
    2. Собрали все ссылки на странице и добавили их в список ссылок на обход
    3. Исключили лишние (создайте список ислючений: ссылки на внешние ресурсы, например, начинающиеся на htts://vk.com)
    4. Выполнили еще свои проверки
    5. Взяли первую ссылку из списка
    6. Перешли по ней и удалили из списка на обход
    7. Повторять список с п.2, пока не кончатся ссылки на обход

    Ответ написан
    Комментировать
  • Как создать иммитацию действий бота, заполнения формы?

    EreminD
    @EreminD
    Кое-что умею
    1. Селениум - это драйвер для браузера. Инструмент, с помощью которого вы посылаете команду браузеру
    2. Фантом - это браузер без графики. Селениум с ним тоже может работать. Фантом меньше ресурсов жрет (просто консольное приложение)

    Дальше
    Вам нужно UI протестить или серверную логику?
    • Если у вас UI посылает запрос на сервер для регистрации и вам нужно проверить именно сервер, то проще сразу POST-запросы слать - тут вам ни селениум, ни браузер не нужны будут (просто на вашем любимом языке пишете отправку запросов)

    • Если, все же, надо UI проверить - используйте селениум и любой подходящий браузер.
    Ответ написан
    Комментировать
  • Добавление данных из textbox на другой форме в datagridview на основной?

    EreminD
    @EreminD
    Кое-что умею
    public partial class AddForm : Form
        {
            public AddForm(string param1, string param2, int param3)
            {
                InitializeComponent();
                this.textBox1.Text = param1;
                this.textBox2.Text = param2;
                //....
            }
    }
    
    //////////////////////////////
    /////////////////////////////
    ////////////////////////////
    public partial class basKet : Form
        {
            public basKet()
            {
                InitializeComponent();
            }
    
            private void AddButton_Click(object sender, EventArgs e)
            {
                new AddForm("arg1", "arg2", 3).ShowDialog();
            
            }
    }
    Ответ написан
    Комментировать