Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.79/29: Рейтинг темы: голосов - 29, средняя оценка - 4.79
1 / 1 / 4
Регистрация: 06.05.2014
Сообщений: 167

С чего начать изучение C#?

06.05.2014, 17:01. Показов 6478. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Народ, помогите. С чего начать изучение C#? Цель за месяц написать приложение в WinForm для работы с БД SQLite. Сейчас активно ковыряю C# но дальше блокнота и калькулятора не ушел. Раньше писал на делфи как говнокодер, также занимался разработкой на SQL под Oracle и Microsoft SQL. Может есть какие толковые курсы онлайн.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.05.2014, 17:01
Ответы с готовыми решениями:

С чего начать изучение C#
Всем доброго времени суток ! Хочу начать изучать язык C, но я новичёк в программировании и не с чем подобным раньше не имел дела. Мои...

С чего начать изучение C#?
Хочу научиться программировать на языке C#.Подскажите, пожалуйста, с чего начать.

С чего начать изучение C#?
Хотел бы заняться VR технологиями, немного знаю С/С++, (не так хорошо как хотелось бы, но я стараюсь), подскажите книжки и еще что-нибудь,...

27
1 / 1 / 4
Регистрация: 06.05.2014
Сообщений: 167
08.05.2014, 14:51  [ТС]
Студворк — интернет-сервис помощи студентам
К сожалению проживаю за границей и не имею возможности купить это издание. На родину вернусь только в августе, а начать уже более-менее ориентироваться и заниматься разработкой в C# надо уже сейчас. Поэтому и спрашиваю насчет курсов он-лайн. Ну и по своему опыту скажу, что сначала лучше самому разобраться в азах и набить руку для базы и только потом приниматься за литературу.
0
0 / 0 / 0
Регистрация: 08.05.2014
Сообщений: 4
08.05.2014, 14:59
Открыл ваш проект, заменил ссылку с библиотеки Finisar.SQLite на провайдер, расположенный на сайте sqlite - System.Data.SQLite Download Page. К вашей БД Food.db соединение прошло без ошибок. Честно говоря, не знаю что за библиотека "Finisar" - вы из каких-то особых соображений ее использовали, или она просто под руку подвернулась? Если второе, то для начала рекомендую использовать провайдер от команды sqlite.

И на будущее - если перехватываете все исключения подряд, то хотя бы не теряйте текст исключения. Предлагаю заменить

C#
1
2
3
4
catch
{
    label1.Text = "Соединение не установлено";
}
на
C#
1
2
3
4
catch(Exception ex)
{
    label1.Text = "Соединение не установлено. Текст ошибки: " + ex.Message;
}
0
1 / 1 / 4
Регистрация: 06.05.2014
Сообщений: 167
08.05.2014, 15:09  [ТС]
Эту библиотеку я взял из примера, на многих видео также описывается using Finisar.Sqlite для библиотеки SQlite.Net, а когда я подцепил System.Data.SQLite... (дальше не помню, на память пишу), то студия выругалась, что она устаревшая для Framework 2.0. Спасибо за помощь. У меня разница с Москвой +3 часа, поэтому буду кодить завтра.
0
Заблокирован
08.05.2014, 15:11
GaS_597, если уж использовать исключения, то лучше так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
        private void button1_Click(object sender, EventArgs e)
        {
            //Подключение к базе
            Connection();
            try
            {
                connect.Open();
                label1.Text = "Соединение установлено";
            }
            catch(Exception exp)
            {
                label1.Text = exp.Message;
            } 
        }
Я немного погуглил:
http://habrahabr.ru/post/56694/
так что все же лучше поискать провайдер. Я скачал SQLite ADO.NET 2.0/3.5 Provider, но он или уже неактуальный или я не понял как с ним работать.
Вот еще одна полезная ссылка:
https://www.cyberforum.ru/ado-... 62189.html
Пробывал выполнить код по созданию БД вылезло:

Code
1
2
3
4
5
Необработанное исключение: System.IO.FileLoadException: Сборка для смешанного ре
жима построена на основе версии "v2.0.50727" среды выполнения и не может быть за
гружена в среде выполнения 4.0 без дополнительных конфигурационных данных.
   в SQliteConsole.Program.Main(String[] args)
Для продолжения нажмите любую клавишу . . .
Буду думать дальше
0
0 / 0 / 0
Регистрация: 08.05.2014
Сообщений: 4
08.05.2014, 15:37
Вот только сейчас скачал собранную версию для 4.5 и собрал приложение под .net 4.5. Никаких проблем. По умолчанию в проекте используется 4.0 Client Profile. Эту конфигурацию ни разу не использовал, но знаю, что когда она не нужна, она вызывает проблемы с зависимостями. Посмотрите, что в свойствах проекта указана корректная платформа для сборки

Добавлено через 17 минут
Теперь об отображении. Добавил на форму DataGridView, обозвал его dgvMain (атрибут Name). Немного подправил код формы, после запуска данные корректно отобразились (правда возникли проблемы с русским языком, но сейчас разбираться нет времени). Моменты, на которые стоит обратить внимание:

1. Нет необходимости хранить объект соединения на уровне класса. В ADO.NET используется такая вещь, как "пул соединений". Приведенный код открывает и освобождает соединение только на необходимое для работы время.

2. Я использовал свою БД, созданную с помощью утилиты sqlite3.exe. В ней я создал таблицу accounts. Т.е. текст команды на sql вставляйте тот, который нужен вам.

3. Использование DataGridView я вспоминал по msdn (сам Windows Forms давно не использую - сейчас актуален WPF + DataBinding). Вообще, MSDN должен стать для вас главным источником информации. Там есть и статьи по основам языка, и по конкретным библиотекам, технологиям .net.

4. Код чисто демонстрационный, на использование в производстве не претендует

Кликните здесь для просмотра всего текста
C#
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
        private const string connectionString = "Data Source=Food-test.db;Version=3;New=False;Compress=True;";
 
        public Form1()
        {
            InitializeComponent();
 
        }
 
        //Кнопка подключения к базе и вывода данных в форму
        private void button1_Click(object sender, EventArgs e)
        {
            //Подключение к базе
            using (var connect = new SQLiteConnection(connectionString))
            {
                try
                {
                    connect.Open();
                    label1.Text = "Соединение установлено";
 
                    using (var command = new SQLiteCommand("select * from accounts", connect))
                    using(var adapter = new SQLiteDataAdapter(command))
                    {
                        var data = new DataTable();
                        adapter.Fill(data);
                        dgvMain.DataSource = data;
                    }
                }
                catch (Exception ex)
                {
                    label1.Text = ex.Message;
                }
            }
        }


P.S.: использую Visual Studio 2013, .net 4.5
0
Заблокирован
08.05.2014, 16:38
svgorbunov, а я не нашел собранную версию для 4.5.
Прочел тут:
http://www.csharpcity.com/2010... net-c-4-0/
что изменение App.config
C#
1
2
3
<startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
  </startup>
уберет это исключение. Но мне не помогло.
0
08.05.2014, 16:45
 Комментарий модератора 
Господа, похоже вы уже не слабо удалились от темы.
ТС, у нас не приняты темы "Решите все мои проблемы тут". Одна тема - один вопрос.
Решайте свою задачу, а при возникновении каких-либо трудностей создавайте отдельные темы под каждую проблему.
0
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
13.06.2021, 11:14
Цитата Сообщение от svgorbunov Посмотреть сообщение
По умолчанию в проекте используется 4.0 Client Profile. Эту конфигурацию ни разу не использовал, но знаю, что когда она не нужна, она вызывает проблемы с зависимостями.
там просто от 4.0 (VS2010) до 4.5 (VS11) какие-то резкие изменения были ...

Добавлено через 3 минуты
Цитата Сообщение от svgorbunov Посмотреть сообщение
ADO.NET+sqlite3.exe.
4. Код чисто демонстрационный, на использование в производстве не претендует
? а сама связка эта без Entity Framework нормально пойдёт для просто хранения бд (загнали, достали исторические данные периодически) -- или почему "не претендует"?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.06.2021, 11:14

С чего начать изучение C#?
Немножко почитав всемирную паутину я понял что нужно начать с малого, а не прыгать выше своей головы, итог, с чего посоветуете начать,...

С чего начать изучение языка C#?
Хочу выучить C# и не знаю, с каких книг начать своё обучения, хочу писать приложения для Windows (WindowsForms) в среде VS2008,...

C чего лучше начать изучение C#?
C чего лучше начать изучение C#? Скачал книгу Г.Шилдта, учусь по ней. Несмотря на то, что там нет задач для закрепления знаний, манера...

С чего начать изучение программирования
Друзья,сам уже более года занимаюсь С#,.Net,а недавно мой друг захотел изучать,помогите мне с выбором литературы и/или метода обучения для...

С чего начать самостоятельное изучение?
Здравствуйте. У меня образование не техническое, программную инженерию я не заканчивала. Но я решила самостоятельно научиться...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru