Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.01.2012, 14:46   #1
bogdanchek
Пользователь
 
Регистрация: 26.01.2012
Сообщений: 10
По умолчанию Вставка строки

Добрый день, помогите пожалуйста со следующей проблемой, незнаю уже что делать :
Вставляю запись в SQL БД :
Код:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[AddSupplier]
@SupplierName char
as
INSERT INTO Suppliers (SupplierName) VALUES (@SupplierName)
в программе так :

Код:
...
public void AddSupplier(Supplier s)
        { // новый поставщик
            cmd = new SqlCommand("AddSupplier", Connection);
            cmd.Parameters.AddWithValue("@SupplierName", s.SupplierName);
            ExecuteSQLCommand("Возможно поставщик с таким именем уже существует");
        }
...
protected void ExecuteSQLCommand(string message)
        { // для упрощения кода
            cmd.CommandType = CommandType.StoredProcedure;
            if (Connection.State == ConnectionState.Closed)
                Connection.Open();
            try
            {
                cmd.ExecuteNonQuery();
            }
            catch
            {
                MessageBox.Show(message);
            }
            finally
            {
                Connection.Close();
            }
        }
...
после вставки таким образом например слова "gggg" у меня вставляется почемуто только первая буква "g". В чем может быть проблема ?

Еще кое-что : до функции вставки строка доходит полностью, в самой таблице БД(или во время вставки/также редактирования) уже становится одной буквой. В таблице есть несколько строк больше 1й буквы. Тоесть когдато раньше все было вродекак нормально а потом вдруг стало как я написал, и где этот момент перемен, понять не могу. Если выполнять процедуру в SQL - выполняется нормально. Попробовал написать запрос

Код:
INSERT INTO Suppliers (SupplierName) VALUES ('supplier')
все правильно отработало, в таблице появилась новая строка supplier.
Попробовал запустить другую программу, которая также работает с SQL БД, там таже фигня, вставляется 1 первая буква
Получается проблема в стыке программ с SQL-сервером. Тип поля SupplierName в SQL varchar(MAX). Пожалуйста, помогите разобраться.
bogdanchek вне форума Ответить с цитированием
Старый 26.01.2012, 15:58   #2
Cronos20
Форумчанин
 
Регистрация: 08.07.2010
Сообщений: 679
По умолчанию

Ну если у вас поле в БД varchar , то что ж вы принимаете параметр для вставки как char ?
Код:
ALTER PROCEDURE [dbo].[AddSupplier]
@SupplierName char
Cronos20 вне форума Ответить с цитированием
Старый 26.01.2012, 18:10   #3
bogdanchek
Пользователь
 
Регистрация: 26.01.2012
Сообщений: 10
По умолчанию

Да, вы правы, изменил сhar на text, все стало работать. Большое спасибо, дело было всеголишь в типах
bogdanchek вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставка в середину строки Кинельски Общие вопросы Delphi 2 03.06.2010 12:19
Вставка битовой строки Svistaplas48 Помощь студентам 2 30.09.2009 18:14
Вставка скопированной строки ruavia3 Microsoft Office Excel 4 16.03.2009 10:59
Вставка строки из таблицы Tanusha SQL, базы данных 0 16.03.2009 10:19
Вставка/удаление из строки. t3ns0r Общие вопросы C/C++ 3 11.10.2008 17:58