Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/20: Рейтинг темы: голосов - 20, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 27.06.2009
Сообщений: 65

связка Sql и C#

03.06.2011, 00:11. Показов 3850. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня возникло несколько проблем.
Вот интерфейс моей программы


Вот код

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
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
        private void btnNext_Click(object sender, EventArgs e)
        {
 
           
                try
                {
                   
                    string Family = Convert.ToString(this.txtFam.Text);
                    string FirstName = Convert.ToString(this.txtName.Text);
                    string MiddleName = Convert.ToString(this.txtO.Text);
                    string vidan = Convert.ToString(this.txtWho.Text);
 
                    int seria = Convert.ToInt32(this.txtSer.Text);
                    int nomer = Convert.ToInt32(this.txtNom.Text);
                    int cod = Convert.ToInt32(this.txtCod.Text);
                  
                    conn = new SqlConnection();
                    conn.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=" +
                    @"C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\matr\matr\abit.mdf" +
                    ";Integrated Security=True;Connect Timeout=30;User Instance=True";
                    conn.Open();
                    SqlCommand myCommand = conn.CreateCommand();
 
                    myCommand.CommandText = "INSERT INTO " +
                    "matr (Fam, Name, Otch) " +
                    "VALUES (@Family, @FirstName, @MiddleName)";
                    myCommand.Parameters.Add("@Family", SqlDbType.NVarChar, 50);
                    myCommand.Parameters["@Family"].Value = Family;
                    myCommand.Parameters.Add("@FirstName", SqlDbType.NVarChar, 50);
                    myCommand.Parameters["@FirstName"].Value = FirstName;
                    myCommand.Parameters.Add("@MiddleName", SqlDbType.NVarChar, 50);
                    myCommand.Parameters["@MiddleName"].Value = MiddleName;
 
                    myCommand.CommandText = "INSERT INTO " +
                    "pasport (tip_doka, seria, nomer, gr, vidan, kod) " +
                    "VALUES (@tip_doka, @seria, @nomer, @gr, @vidan, @kod)";
 
                    // комбобоксы
                    myCommand.Parameters.Add("@tip_doka", SqlDbType.NVarChar, 50);
                    myCommand.Parameters["@tip_doka"].Value =      cmbGr.Items[comboBox1.SelectedIndex].ToString();
 
                    myCommand.Parameters.Add("@gr", SqlDbType.NVarChar, 50);
                    myCommand.Parameters["@gr"].Value = cmbGr.Items[comboBox1.SelectedIndex].ToString();
 
                    myCommand.Parameters.Add("@seria", SqlDbType.Int,4);
                    myCommand.Parameters["@seria"].Value = seria;
 
                    myCommand.Parameters.Add("@nomer", SqlDbType.Int, 4);
                    myCommand.Parameters["@nomer"].Value = nomer;
 
                    myCommand.Parameters.Add("@vidan", SqlDbType.NVarChar, 50);
                    myCommand.Parameters["@vidan"].Value = vidan;
 
                    myCommand.Parameters.Add("@kod", SqlDbType.Int, 4);
                    myCommand.Parameters["@kod"].Value = cod;
                    // дата
                    data1.Value = DateTime.Now;
                    data1.Format = DateTimePickerFormat.Custom;
                    data1.CustomFormat = "dd.MM.yyyy";
 
                    int UspeshnoeIzmenenie = myCommand.ExecuteNonQuery();
                    if (UspeshnoeIzmenenie != 0)
                    {
                        MessageBox.Show("Изменения внесены", "Изменение записи");
                    }
                    else
                    {
 
                        MessageBox.Show("Не удалось внести изменения", "Изменение записи");
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }
                finally
                {
                    conn.Close();
                    
 
                    this.Hide();
                    Form frm2 = new frm2();
                    frm2.ShowDialog();
                }
 
 
              
        }

и вот первое что хотелось бы узнать: выдает ошибку на
C#
1
 int nomer = Convert.ToInt32(this.txtNom.Text);
говорит входная строка имеет не правильный формат.
наверняка и к другим таким же такую же ошибку будет выдавать.
Мне очень нужна ваша помощь.
2) хотелось бы еще узнать. правильно я поле с датой сделала, чтобы он её в базу добавлял?
C#
1
2
3
       data1.Value = DateTime.Now;
                    data1.Format = DateTimePickerFormat.Custom;
                    data1.CustomFormat = "dd.MM.yyyy";
3) и сразу еще хочу спросить. нигде не могу найти как связать два ComboBox'a.
То есть в первом выбираю страну, а во втором отображаются уже сразу города именно этой страны.
Читала вроде как через TextItem можно. но у него и подавно такого свойства нет.

Help me, pleaseeee...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.06.2011, 00:11
Ответы с готовыми решениями:

Связка MS SQL БД с программой на С#
Здравствуйте! Вопрос, думаю, элементарный, но поскольку только пробую - решил задать тем специалистам, которые знают: Программа,...

Создание БД: Возможна ли связка SQL Express + IIS 7 + ASP.NET
Добрый день. Хочу спросить у знающих людей по созданию БД. Вот в чем идея: Возможна ли связка SQL Express + IIS 7 + ASP.NET. ...

связка с sql
Всем, привет. На форме кинут stripmenu. Можно ли сделать чтобы все пункты меню можно было формировать исходя из базы MS SQL(т.е....

8
90 / 89 / 13
Регистрация: 28.09.2010
Сообщений: 262
03.06.2011, 07:33
Проще все значения документа хранить не в int а в string. Поскольку серия может содержать нецифровые символы (например, паспорт XX(пробел)XX, военный билет вообще в серии 2 буквы), код подразделения - так же - для паспорта ХХХ-ХХХ.
И еще
C#
1
2
3
4
string Family = Convert.ToString(this.txtFam.Text);
                    string FirstName = Convert.ToString(this.txtName.Text);
                    string MiddleName = Convert.ToString(this.txtO.Text);
                    string vidan = Convert.ToString(this.txtWho.Text);
из string в string конвертировать необязательно
0
145 / 145 / 26
Регистрация: 09.10.2009
Сообщений: 261
03.06.2011, 13:56
1) Используйте метод TryParse:
C#
1
2
int nomer;
nomer = int.TryParse(txtNom.Text, out nomer);
Или, как уже сказали выше, откажитесь от типа int, заменив его на string.
2) Для корректной вставки в SQL-таблицу, содержащую поле DateTime, дата должна иметь следующий формат: yyyy-mm-dd hh:mm:ss (2009-06-23 19:30:20). Затем используете стандартный SQL-запрос вида:
C#
1
2
3
SqlCommand cmd = new SqlCommand("INSERT INTO <table> (<column>) VALUES (@value)", connection);
cmd.Parameters.AddWithValue("@value", dateTimeVariable);
cmd.ExecuteNonQuery();
3) Создайте List<string[]>, который будет содержать названия городов. Порядок строк в списке должен соответствовать порядку стран в ComboBox. Затем по событию SelectedIndexChanged вы будете подгружать в ComboBox городов соответствующий список из нашего List<string[]>, используя полученный индекс.
0
1 / 1 / 0
Регистрация: 27.06.2009
Сообщений: 65
08.06.2011, 15:31  [ТС]
Цитата Сообщение от ArtOfLife Посмотреть сообщение
1) Используйте метод TryParse:
C#
1
2
int nomer;
nomer = int.TryParse(txtNom.Text, out nomer);

этот метод используется для bool ))

сделала так. помогло)
C#
1
 int idm = int.Parse(this.id.Text);
спасибо большое за помощь. счас с остальным буду разбираться))
0
145 / 145 / 26
Регистрация: 09.10.2009
Сообщений: 261
08.06.2011, 15:55
Цитата Сообщение от Aniritake Посмотреть сообщение
этот метод используется для bool ))
Моя вина, не подчистил копипаст. Нужно было так:
C#
1
2
int nomer;
int.TryParse(txtNom.Text, out nomer);
Результат можно и не проверять, т.к. в случае фейла nomer будет равен нулю.
Если же делаете так:
C#
1
int idm = int.Parse(this.id.Text);
то не забывайте про обработку исключений, т.к. обязательно получите эксепшен при вводе нецифровых символов.
0
1 / 1 / 0
Регистрация: 27.06.2009
Сообщений: 65
08.06.2011, 17:22  [ТС]
Цитата Сообщение от ArtOfLife Посмотреть сообщение
2) Для корректной вставки в SQL-таблицу, содержащую поле DateTime, дата должна иметь следующий формат: yyyy-mm-dd hh:mm:ss (2009-06-23 19:30:20). Затем используете стандартный SQL-запрос вида:
C#
1
2
3
SqlCommand cmd = new SqlCommand("INSERT INTO <table> (<column>) VALUES (@value)", connection);
cmd.Parameters.AddWithValue("@value", dateTimeVariable);
cmd.ExecuteNonQuery();
это код не работает абсолютно. Сделала следующее

C#
1
2
3
DateTimePicker dateTimePicker1 = new DateTimePicker();
string dt = Convert.ToString(this.dateTimePicker1.Value);
myCommand.Parameters.Add(new SqlParameter("@дата", dt));
Добавлено через 13 минут
Цитата Сообщение от ArtOfLife Посмотреть сообщение
обработку исключений
оу, спасибо что напомнили. благодарна)
0
09.06.2011, 01:15

Не по теме:

Если у вас что-то не работает, то это вовсе не означает, что вам привели пример нерабочего кода. ;)

0
1 / 1 / 0
Регистрация: 27.06.2009
Сообщений: 65
09.06.2011, 01:20  [ТС]
Цитата Сообщение от ArtOfLife Посмотреть сообщение

Не по теме:

Если у вас что-то не работает, то это вовсе не означает, что вам привели пример нерабочего кода. ;)

может он и рабочий, но не в данном примере))
0
1 / 1 / 0
Регистрация: 27.06.2009
Сообщений: 65
14.06.2011, 23:25  [ТС]
может подскажете как сделать, если знаете?
foreign key (C#+SQL)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.06.2011, 23:25
Помогаю со студенческими работами здесь

Связка SQL Access
Ребята, привет! Есть проблема: через ODBC связана таблица SQL с Access, нужно чтобы, как только SQL таблица получала ивент (after update...

Связка двух SQL запросов Master Detail
Добрый день. Точнее, доброго времени суток ;) Для работы с базой MSSQL использую компоненты ADO. Вопрос заключается в следующем, как...

Как работает связка Access 2010 с MS SQL (схематично)
Уважаемые друзья! Приветствую Вас! Я новичок в Аксесе, до этого все мои базы были сделаны в Экселе, но сейчас понимаю уже что то что...

Связка двух форм в VB.Net 2015 + SQL Server 2008
Всем привет. Вновь обращаюсь за помощью к знающим и понимающим. Проблема такого плана : есть две формы, одна содержит DataGridView с...

Связка C++ и C#
Допустим я создал библиотеку C#, в данной библиотеке есть нужные мне методы которые я должен вызвать в коде C++. Какие варианты решения...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru