Форум программистов  
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > .NET > Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 10.04.2016, 17:03   #1
Betelgeuse7
 
Регистрация: 15.02.2014
Сообщений: 9
Репутация: 10
По умолчанию Не записывает полное название и выбирает не ту строку

Такая проблема. При записи Названия, Номера и Описания документа и сохранении инфы в БД, сохраняется только самый первый символ. И при выборе Корреспондента сохраняется Корреспондент, который находится на строчку выше от выбранного. С чем может быть связано?

Код:

private void btnSohr_Click(object sender, EventArgs e)
        {
            SqlCommand saveCommand = new SqlCommand();
            saveCommand.CommandType = CommandType.StoredProcedure;
 
            SqlParameter prm1 = null;
            SqlParameter prm2 = null;
            SqlParameter prm3 = null;
            SqlParameter prm4 = null;
            SqlParameter prm5 = null;
            SqlParameter prm6 = null;
            SqlParameter prm7 = null;
            SqlParameter prm8 = null;
            SqlParameter prm9 = null;
 
            prm1 = new SqlParameter("ID", SqlDbType.BigInt);
            prm1.Direction = ParameterDirection.InputOutput;
            prm1.Value = Int32.Parse(strID);
            saveCommand.Parameters.Add(prm1);
 
            prm2 = new SqlParameter("DocName", SqlDbType.VarChar);
            prm2.Direction = ParameterDirection.Input;
            prm2.Value = tbNazvanieSD.Text;
            prm2.Size = 200;
            saveCommand.Parameters.Add(prm2);
            
            prm3 = new SqlParameter("DocDate", SqlDbType.DateTime);
            prm3.Direction = ParameterDirection.Input;
            CultureInfo clt = CultureInfo.CreateSpecificCulture("en-US");
            if (tbDataRegistr.Text.Substring(0, 2) == "  ")
            {
                prm3.SqlValue = DBNull.Value;
            }
            else
            {
                System.DateTime dt1 = System.DateTime.Parse(tbDataRegistr.Text.Substring(3, 2) + "." + tbDataRegistr.Text.Substring(0, 2) 
                    + "." + tbDataRegistr.Text.Substring(6), clt);
                prm3.SqlValue = dt1;
            }
            saveCommand.Parameters.Add(prm3);
 
            prm4 = new SqlParameter("DocNum", SqlDbType.VarChar);
            prm4.Direction = ParameterDirection.Input;
            prm4.Value = tbNomer.Text;
            prm4.Size = 10;
            saveCommand.Parameters.Add(prm4);
 
            prm5 = new SqlParameter("DocDesc", SqlDbType.VarChar);
            prm5.Direction = ParameterDirection.Input;
            prm5.Value = tbOpisanieSD.Text;
            prm5.Size = 1000;
            saveCommand.Parameters.Add(prm5);
 
            prm6 = new SqlParameter("DvId", SqlDbType.Int);
            prm6.Direction = ParameterDirection.Input;
            if (cbVid.SelectedIndex == -1)
            {
                MessageBox.Show("Необходимо выбрать вид документа!");
                return;
            }
            prm6.Value = int.Parse(cbVid.SelectedValue.ToString());
            saveCommand.Parameters.Add(prm6);
 
            prm7 = new SqlParameter("DkId", SqlDbType.Int);
            prm7.Direction = ParameterDirection.Input;
            if (cbKorr.SelectedIndex == -1)
            {
                MessageBox.Show("Необходимо выбрать корреспондента!");
                return;
            }
            prm7.Value = int.Parse(cbKorr.SelectedIndex.ToString());
            saveCommand.Parameters.Add(prm7);
 
  
            saveCommand.CommandText = "UpdateDocum";
            using (SqlConnection cnt1 = new SqlConnection(DocsWorkflow.Settings_DocsWF.Default.canString))
            {
                cnt1.Open();
                saveCommand.Connection = cnt1;
                saveCommand.ExecuteNonQuery();
                strID = saveCommand.Parameters["ID"].Value.ToString();
            }
        
        }

______________________
Используйте тег [CODE] (кнопка с решеткой # в форме сообщения) при вставке кода на форум.
Изображения
Тип файла: jpg 2016-04-10_15-42-49.jpg (21.2 Кб, 0 просмотров)
Тип файла: jpg 2016-04-10_15-43-31.jpg (20.1 Кб, 0 просмотров)

Последний раз редактировалось Alex11223; 10.04.2016 в 17:10.
Betelgeuse7 вне форума   Ответить с цитированием
Старый 10.04.2016, 17:20   #2
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 14,326
Репутация: 2807

icq: 512-7шесть5
skype: alexp.frl
По умолчанию

В конструкторе SqlParameter после VarChar наверно надо указать его размер 3 параметром.

И видимо у вас в БД ID корреспондентов начинаются с 1, а в комбобоксе индексы идут с 0.
Вообще лучше как-нибудь отдельно хранить ID, а не просто использовать номер элемента в комбобоксе. https://www.google.com/search?q=winf...obox+key+value
Alex11223 на форуме   Ответить с цитированием
Старый 10.04.2016, 18:25   #3
Betelgeuse7
 
Регистрация: 15.02.2014
Сообщений: 9
Репутация: 10
По умолчанию

А можно пример с VarChar, пожалуйста? Имеется в виду в скобках указать? Если да, то такое не прокатывает - просто выдает за ошибку.
Betelgeuse7 вне форума   Ответить с цитированием
Старый 10.04.2016, 18:30   #4
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 14,326
Репутация: 2807

icq: 512-7шесть5
skype: alexp.frl
По умолчанию

Код:

new SqlParameter("DocName", SqlDbType.VarChar, 50)

Alex11223 на форуме   Ответить с цитированием
Старый 10.04.2016, 18:43   #5
Betelgeuse7
 
Регистрация: 15.02.2014
Сообщений: 9
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Код:

new SqlParameter("DocName", SqlDbType.VarChar, 50)

Сделала так, не получилось. Все также сохраняется один символ(
Betelgeuse7 вне форума   Ответить с цитированием
Старый 10.04.2016, 18:49   #6
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 14,326
Репутация: 2807

icq: 512-7шесть5
skype: alexp.frl
По умолчанию

Странно, а в UpdateDocum что?
Alex11223 на форуме   Ответить с цитированием
Старый 10.04.2016, 18:56   #7
Betelgeuse7
 
Регистрация: 15.02.2014
Сообщений: 9
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Странно, а в UpdateDocum что?
Совсем забыла про него
Сейчас добавила в скобках к varchar размер и все получилось))
Betelgeuse7 вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как преобразовать строку в название константу или её индификатор androidz Общие вопросы Delphi 10 27.02.2014 21:33
Расшифровка(полное название) тегов ts-alan HTML и CSS 1 25.02.2013 16:47
Абитура выбирает направление Alendorff Свободное общение 9 29.06.2011 11:49
Не правильно выбирает данные sasha_prof Microsoft Office Access 13 19.11.2010 18:25
select не выбирает записи Lokos БД в Delphi 17 06.10.2010 23:19




11:53.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru