Во-первых, о вашем неверном значении даты. Это правильно, потому что когда вы пропускаете ''
вокруг 2020-03-20
, SQL Server делает неявное преобразование типа данных . Следующий пример демонстрирует это:
Неявное преобразование:
DECLARE @date datetime
SELECT @date = 2020-03-20
SELECT @date
SELECT DATEADD(day, 2020-03-20, 0)
Вывод:
1905-06-21 00:00:00.000
Во-вторых, если вы хотите передать значения даты и времени, просто используйте соответствующий формат - 'yyyy-MM-dd'
, 'yyyyMMdd hh:nn:ss'
или 'yyyy-MM-ddThh:nn:ss'
:
"UPDATE TABLENAME set COL1 = ". Во-первых, о вашем неверном значении даты. Это правильно, потому что когда вы пропускаете ''
вокруг 2020-03-20
, SQL Server делает неявное преобразование типа данных . Следующий пример демонстрирует это:
Неявное преобразование:
[110] Вывод:
[111] Во-вторых, если вы хотите передать значения даты и времени, просто используйте соответствующий формат - 'yyyy-MM-dd'
, 'yyyyMMdd hh:nn:ss'
или 'yyyy-MM-ddThh:nn:ss'
:
[112] Я не знаю, как вы подключаетесь к SQL Server, но попробуйте использовать подготовленные операторы . [ 1117]
Обновление (Извлечение и отправка значений даты и времени с и на SQL Server):
На основе драйвера, который вы используете для подключения к SQL Server, вы можете получить значения даты и времени как текст или как объект даты и времени PHP (если вы используете драйвер PHP для SQL Server), но вам нужно отправить эти значения в виде текста. В вашем случае значения возвращаются в виде текста. Поэтому вам нужно сгенерировать универсальное значение даты и времени (например, в 'yyyy-MM-ddThh:nn:ss'
) как текст.
В следующем примере показаны некоторые допустимые и недействительные комбинации для оператора UPDATE
T-SQL для вашего столбца datetime. Он протестирован с драйвером PHP для SQL Server 4.0.3.
POST[VAL1].", COL2 = ". Во-первых, о вашем неверном значении даты. Это правильно, потому что когда вы пропускаете ''
вокруг 2020-03-20
, SQL Server делает неявное преобразование типа данных . Следующий пример демонстрирует это:
Неявное преобразование:
[110] Вывод:
[111] Во-вторых, если вы хотите передать значения даты и времени, просто используйте соответствующий формат - 'yyyy-MM-dd'
, 'yyyyMMdd hh:nn:ss'
или 'yyyy-MM-ddThh:nn:ss'
:
[112] Я не знаю, как вы подключаетесь к SQL Server, но попробуйте использовать подготовленные операторы . [ 1117]
Обновление (Извлечение и отправка значений даты и времени с и на SQL Server):
На основе драйвера, который вы используете для подключения к SQL Server, вы можете получить значения даты и времени как текст или как объект даты и времени PHP (если вы используете драйвер PHP для SQL Server), но вам нужно отправить эти значения в виде текста. В вашем случае значения возвращаются в виде текста. Поэтому вам нужно сгенерировать универсальное значение даты и времени (например, в 'yyyy-MM-ddThh:nn:ss'
) как текст.
В следующем примере показаны некоторые допустимые и недействительные комбинации для оператора UPDATE
T-SQL для вашего столбца datetime. Он протестирован с драйвером PHP для SQL Server 4.0.3.
POST[VAL2].", COL3 = '2020-03-20' WHERE COL0 = 'VAL0'"
Я не знаю, как вы подключаетесь к SQL Server, но попробуйте использовать подготовленные операторы . [ 1117]
Обновление (Извлечение и отправка значений даты и времени с и на SQL Server):
На основе драйвера, который вы используете для подключения к SQL Server, вы можете получить значения даты и времени как текст или как объект даты и времени PHP (если вы используете драйвер PHP для SQL Server), но вам нужно отправить эти значения в виде текста. В вашем случае значения возвращаются в виде текста. Поэтому вам нужно сгенерировать универсальное значение даты и времени (например, в 'yyyy-MM-ddThh:nn:ss'
) как текст.
В следующем примере показаны некоторые допустимые и недействительные комбинации для оператора UPDATE
T-SQL для вашего столбца datetime. Он протестирован с драйвером PHP для SQL Server 4.0.3.
Существует несколько различных способов добавить вещи к a List<T>
: Добавьте, AddRange, Вставьте и т.д.
Рассмотрите решение, которое наследовалось Collection<T>
:
Public Class LimitedCollection(Of T)
Inherits System.Collections.ObjectModel.Collection(Of T)
Private _Capacity As Integer
Public Property Capacity() As Integer
Get
Return _Capacity
End Get
Set(ByVal value As Integer)
_Capacity = value
End Set
End Property
Protected Overrides Sub InsertItem(ByVal index As Integer, ByVal item As T)
If Me.Count = Capacity Then
Dim message As String =
String.Format("List cannot hold more than {0} items", Capacity)
Throw New InvalidOperationException(message)
End If
MyBase.InsertItem(index, item)
End Sub
End Class
Таким образом, способность уважают ли Вы Add
или Insert
.
Необходимо реализовать собственный список/набор, если необходимо ограничить максимальное количество объекта в нем.
Нет никакого встроенного способа ограничить размер Списка (T). Свойство Capacity просто изменяет размер буфера underyling, не ограничивая его.
Если Вы захотите ограничить размер Списка, то необходимо будет создать обертку, которая проверяет на недопустимый размер. Например,
Public Class RestrictedList(Of T)
Private _list as New List(Of T)
Private _limit as Integer
Public Property Limit As Integer
Get
return _limit
End Get
Set
_limit = Value
End Set
End Property
Public Sub Add(T value)
if _list.Count = _limit Then
Throw New InvalidOperationException("List at limit")
End If
_list.Add(value)
End Sub
End Class
Список не имеет такого средства.
Полный материал является просто оптимизацией производительности.
Вы оказываетесь перед необходимостью класс самокрутки, происходите от списка и переопределяете Добавить реализацию.
Вы захотите получить новое LimitedList
и тень методы добавления. Что-то вроде этого запустит Вас.
public class LimitedList<T> : List<T>
{
private int limit;
public LimitedList(int limit)
{
this.limit = limit;
}
public new void Add(T item)
{
if (Count < limit)
base.Add(item);
}
}
Просто реализованный Вы находитесь в VB, я переведу вскоре
Редактирование Видит Jared для версии VB. Я оставлю это здесь в случае, если кто-то хочет, чтобы версия C# начала с.
Если это имеет значение мой проявляет немного отличающийся подход, поскольку он расширяет класс Списка вместо того, чтобы инкапсулировать его. То, которые приближаются, Вы хотите использовать, зависит от Вашей ситуации.