powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / decimal(Nhiber)
22 сообщений из 22, страница 1 из 1
decimal(Nhiber)
    #35283182
студ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если разделителем разряда в региональных настройках стоит ",", то при обновлении decimal полей с ненулевыми дробными разрядами получается ошибка:

RIT.AUC.BLL.BLLException: Commit transaction error ---> NHibernate.ADOException: could not insert: [RIT.AUC.BLL.Interface.TangibleItem#e057659d-95d2-4e6f-b6a2-6ca3485b50a7][SQL: INSERT INTO Items (ItemQuantity, InventoryNumber, Location, ProductionYear, UnitID, Name, SellPrice, EstimatePrice, BalancePrice, ItemNote, IsSold, AuctionId, LotId, AMAManagerProcedureId, AMAItemId, AMAGroupId, Type, Id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 'Tangible', ?)] ---> System.Data.OleDb.OleDbException: Несоответствие типов данных в выражении условия отбора.
at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
at System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
at NHibernate.JetDriver.JetDbCommand.ExecuteNonQuery()
at NHibernate.Impl.NonBatchingBatcher.AddToBatch(IExpectation expectation)
at NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object id, Object[] fields, Boolean[] notNull, Int32 j, SqlCommandInfo sql, Object obj, ISessionImplementor session)
--- End of inner exception stack trace ---
at NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object id, Object[] fields, Boolean[] notNull, Int32 j, SqlCommandInfo sql, Object obj, ISessionImplementor session)
at NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object id, Object[] fields, Object obj, ISessionImplementor session)
at NHibernate.Impl.ScheduledInsertion.Execute()
at NHibernate.Impl.SessionImpl.Execute(IExecutable executable)
at NHibernate.Impl.SessionImpl.ExecuteAll(IList list)
at NHibernate.Impl.SessionImpl.Execute()
at NHibernate.Impl.SessionImpl.Flush()
at NHibernate.Transaction.AdoTransaction.Commit()
at RIT.AUC.BLL.SessionFactory.CommitTransaction() in D:\ilya\WORK\Auction\src\BLL\SessionFactory.cs:line 114
--- End of inner exception stack trace ---
at RIT.AUC.BLL.SessionFactory.CommitTransaction() in D:\ilya\WORK\Auction\src\BLL\SessionFactory.cs:line 125
at RIT.AUC.BLL.Home.CommitTransaction() in D:\ilya\WORK\Auction\src\BLL\Home.cs:line 119
at RIT.AUC.Tests.TMassa.TestEdit() in D:\ilya\WORK\Auction\src\Tests\TesterNG\TMassa.cs:line 163
at RIT.AUC.Tests.TMassa.DoTest(String key) in D:\ilya\WORK\Auction\src\Tests\TesterNG\TMassa.cs:line 272
at RIT.AUC.Tests.EntryPoint.Main(String[] args) in D:\ilya\WORK\Auction\src\Tests\TesterNG\EntryPoint.cs:line 31
...
Рейтинг: 0 / 0
decimal(Nhiber)
    #35283232
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не может такого быть -- там параметризованный запрос. Проверяйте соответствие типов параметров.
...
Рейтинг: 0 / 0
decimal(Nhiber)
    #35283296
Valadimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
почему не может быть?
...
Рейтинг: 0 / 0
decimal(Nhiber)
    #35283303
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valadimirпочему не может быть?
Потому что запрос параметризованный (разумеется, если он верно параметризованный).
...
Рейтинг: 0 / 0
decimal(Nhiber)
    #35283350
Valadimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Home.Instance.BeginTransaction();
Session.Save(obj);
Home.Instance.CommitTransaction();

общение с базой происходит через nhibernate значит параметризованный запрос тоже в nhibernate создается, получается в его исходники нужно лезть...или
может быть установить локаль конкретно для nhiber если вообще это возможно...
...
Рейтинг: 0 / 0
decimal(Nhiber)
    #35283365
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valadimirобщение с базой происходит через nhibernate значит параметризованный запрос тоже в nhibernate создается, получается в его исходники нужно лезть...или
может быть установить локаль конкретно для nhiber если вообще это возможно...
Охх... Какая локаль, вы о чем вообще? Параметризованный запрос -- он на то и параметризованный, что от локали не зависит.
...
Рейтинг: 0 / 0
decimal(Nhiber)
    #35283843
Valadimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да правильно, но как установить эти параметры, если они устанавливаются в nhibernate
...
Рейтинг: 0 / 0
decimal(Nhiber)
    #35283861
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValadimirДа правильно, но как установить эти параметры, если они устанавливаются в nhibernate
Они устанавливаются из прикладного кода. Вдумчиво читаем .
...
Рейтинг: 0 / 0
decimal(Nhiber)
    #35283874
Valadimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо уже читаю :)
...
Рейтинг: 0 / 0
decimal(Nhiber)
    #35283916
Valadimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то есть нужно написать запрос с указанием типов без save
...
Рейтинг: 0 / 0
decimal(Nhiber)
    #35283931
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valadimirто есть нужно написать запрос с указанием типов без save
Вы с кем сейчас разговариваете? Может быть, покажете маппинги и код?
...
Рейтинг: 0 / 0
decimal(Nhiber)
    #35283948
Valadimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дело в том что у меня сейчас не кода на этом компе будут только завтра. А вообще в коде просто session.Save. Ладно вообщем хелп буду читать, а то действительно только время отнимаю.
...
Рейтинг: 0 / 0
decimal(Nhiber)
    #35283955
Valadimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дело в том что у меня сейчас не кода на этом компе будут только завтра. А вообще в коде просто session.Save. Ладно вообщем хелп буду читать, а то действительно только время отнимаю.
Последний вопрос: Типы данных которые задаем в мэпингах - это и есть те параметры о котрых вы говорили?
...
Рейтинг: 0 / 0
decimal(Nhiber)
    #35283989
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, те самые.
...
Рейтинг: 0 / 0
decimal(Nhiber)
    #35284004
Valadimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
получается если у я хочу вставить decimal(999.99m) в базу данных Access где тип поля тоже decimal, то в nhibernate я должен установить тип decimal и все будет ок?
Если да то вопрос, вы сами так делали?
...
Рейтинг: 0 / 0
decimal(Nhiber)
    #35284012
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valadimirполучается если у я хочу вставить decimal(999.99m) в базу данных Access где тип поля тоже decimal, то в nhibernate я должен установить тип decimal и все будет ок?
Если да то вопрос, вы сами так делали?
Только так и делаю. А вы как это всё осуществляете, позвольте поинтересоваться?
...
Рейтинг: 0 / 0
decimal(Nhiber)
    #35284022
Valadimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я имел ввиду именно с Access-ом
...
Рейтинг: 0 / 0
decimal(Nhiber)
    #35284033
Valadimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если региональных настройках разделителями стоят обе запятые, то decimal при OleDbType=Decimal не вставить. Ошибка будет несоответствие типов
...
Рейтинг: 0 / 0
decimal(Nhiber)
    #35284034
Valadimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это я про Access
...
Рейтинг: 0 / 0
decimal(Nhiber)
    #35284038
Valadimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот о чем я:
string ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb;";
OleDbConnection connection = new OleDbConnection(ConnectionString);

string insertcommand = "INSERT INTO Test (DecimalField, Id) VALUES (?, ?)";
OleDbCommand command = new OleDbCommand(insertcommand, connection);

OleDbParameter param = new OleDbParameter("@DecimalField", 999.99999M);
param.OleDbType = OleDbType.Decimal;

command.Parameters.Add(param);
command.Parameters.Add(new OleDbParameter("@Id", Guid.NewGuid()));
connection.Open();
command.ExecuteNonQuery();
...
Рейтинг: 0 / 0
decimal(Nhiber)
    #35284074
Valadimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
извиняюсь если что не то сказал
...
Рейтинг: 0 / 0
decimal(Nhiber)
    #35284899
Valadimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот mapping:
<class name="RIT.AUC.BLL.Interface.Item, AUC.BLL" table="Items" discriminator-value="Base">
<id name="Id" unsaved-value="{00000000-0000-0000-0000-000000000000}">
<generator class="guid" />
</id>

<discriminator column="Type" />

<property name="Name" length="100" not-null="true" />
<property name="SellPrice" type="Decimal"/>
<property name="EstimatePrice" type="Decimal"/>
<property name="BalancePrice" type="Decimal" />
<property name="Note" column="ItemNote" />
<property name="IsSold" />

<many-to-one name="Auction" class="RIT.AUC.BLL.Interface.Auction, AUC.BLL" column="AuctionId" />
<many-to-one name="Lot" class="RIT.AUC.BLL.Interface.Lot, AUC.BLL" column="LotId" />

<component name="AMAInfo">
<property name="AMAManagerProcedureId" />
<property name="AMAItemId" />
<property name="AMAGroupId" />
</component>
</class>
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / decimal(Nhiber)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]