Типы данных базы данных и их эквиваленты в Windows Forms - PullRequest
2 голосов
/ 13 июня 2011

Я читал на форумах о людях, имеющих проблемы с определенными типами данных при доступе к базе данных с их веб-сайта и приложения Windows Form.В основном типы данных decimal, float и datetime.

Моя таблица БД, например, таблица "Заказы" состоит из следующих столбцов.Под каждым столбцом указан тип данных, который я выбрал для использования:

UserId     OrderId     OrderDate     InvoiceTotal      PaymentStatus     DeliveryStatus
int        int         datetime      money             bit               bit

Мои вопросы:

  1. Есть (в Windows Forms) DateTime.Now() равнозначно datetime (в БД WebMatrix)?Если нет, то почему?И какой метод будет лучше всего работать с типом данных datetime, используемым в базе данных WebMatrix?

  2. money Тип данных: Насколько мне известно, данных о «деньгах» нетвведите в Windows Forms.Вы можете использовать только Decimal (что имеет смысл), но я слышал о людях, которые также используют Float?Итак, какой тип данных мне следует использовать в WinForms, чтобы он просто правильно работал с типом данных money в БД и как?

Я задаю эти вопросы, потому что вВ прошлом у меня всегда были проблемы с точностью.Иногда даже неточности проблемы.Я прочитал документы.Учебники.Статьи и т. Д. Но я чувствую, что что-то упустил ...

Ответы [ 2 ]

2 голосов
/ 13 июня 2011

Во-первых, лучше устранить некоторую путаницу:

  1. Windows Forms - это технология, построенная на основе .NET Framework.Когда вы описываете DateTime.Now, вы обсуждаете типы из библиотеки базовых классов, а не Windows Forms.

  2. WebMatrix DB, на самом деле, Sql Server Compact.

Возможно, вы не встретите ответы через поиск, если допустите ошибку, путая инструменты с самой структурой.

Если вам нужен способ сравнения типов данных .NET с Sqlтипы данных, стоит взглянуть на страницу библиотеки MSDN , где обсуждается именно эта вещь.

Для ваших конкретных вопросов:

  1. DateTime банкаследует использовать с datetime в большинстве сценариев, однако Sql Server не может работать с исключительными диапазонами дат (например, <01/01/1753).Я не могу представить себе много сценариев, вам нужно было бы пойти меньше, чем это, но это стоит отметить. </p>

  2. Вы правы, в * нет типа данных money1031 * библиотека базовых классов , совместимый тип данных .NET - Decimal.Десятичный тип данных - это тип данных с фиксированной точностью, который означает, что все значения могут быть представлены и сохранены в диапазоне, тогда как Float является типом данных с приблизительным числом, а может быть подверженным проблемам точности.

Существуют аргументы в пользу использования как по соображениям точности, так и производительности, это зависит от того, для чего предназначено ваше приложение.

1 голос
/ 13 июня 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...