Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Автоинкремент в SQL Mobile базе не работает

25K
28 декабря 2007 года
polar-bear
15 / / 21.12.2007
Добрый день. Создана база SQL Mobile и развернута на КПК. Дело в том что мне требуется загрузить в таблицу данные из текстового файла. Все проходит нормально кроме одного . В таблице есть поле с автоинкрементом. Так вот при добавлении записей из текстового файла в базу это поле не увеличивается. Вижу значение NULL. Хотя в таблице NULL запрещен. Вот код
Код:
public void ImportList(string Spr,string FileName)
        {
            string Temp, Name, Price;
            StreamReader Str = new StreamReader(FileName, Encoding.GetEncoding(1251));
            while ((Temp = Str.ReadLine()) != null)
            {
                if (Spr == "goods")
                {
                    int sep = Temp.IndexOf('|');
                    if (Temp.Length != 0)
                    {
                        Name = Temp.Substring(0, sep);
                        Price = Temp.Substring(sep + 1, Temp.Length - (++sep));
                        DataRow Row = Data.Tables["goods"].NewRow();
                        Row["good_name"] = Name;
                        Row["price"] = Convert.ToDecimal(Price.Replace(".",","));
                        Data.Tables["goods"].Rows.Add(Row);
                    }
                }
                else if (Spr == "customers")
                {
                    if (Temp.Length != 0)
                    {
                        DataRow Row = Data.Tables["Customers"].NewRow();
                        Row["customer_name"] = Temp;
                        Data.Tables["customers"].Rows.Add(Row);
                    }
 
                }
            }
            if (Spr == "goods")
            {
                good_Adapter.Update(Data);
            }
            else if (Spr == "customers")
            {
                Customer_Adapter.Update(Data);
            }
            Str.Close();

Код для метода Update()
 
Код:
goodInsertCmd = new SqlCeCommand("insert into goods (good_name,price) values(?,?)", DBConnection);
                goodInsertCmd.Parameters.Add("good_name",SqlDbType.NVarChar,100,"good_name");
                goodInsertCmd.Parameters.Add("price", SqlDbType.Money, 19, "price");

Не подскажите в чем дело. Сам автоикремент работает. Потомучто я проверял прямым запросом к таблице из SQL Management Studio
5
28 декабря 2007 года
hardcase
4.5K / / 09.08.2005
Почемуто мне не нравится вот этот код
Цитата: polar-bear
Код для метода Update()
 
Код:
goodInsertCmd = new SqlCeCommand("insert into goods (good_name,price) values([COLOR=Red]@good_name[/COLOR], [COLOR=Red]@price[/COLOR])", DBConnection);
                goodInsertCmd.Parameters.Add("[COLOR=Red]@good_name[/COLOR]",SqlDbType.NVarChar).Value = myName;
                goodInsertCmd.Parameters.Add("[COLOR=Red]@price[/COLOR]", SqlDbType.Money).Value = myPrice;

25K
28 декабря 2007 года
polar-bear
15 / / 21.12.2007
Вы знаете этот код прерасно работает со стандартным SqlServer 2005. Поэтому я и вставил его без изменений. Он и здесь работает. Только нет приращения счетчика.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог