Próbuję dokonać porównania obiektu MySqlDateTime z innym obiektem MySqlDateTime, każdy z dwóch różnych tabel. Staram się robić wszystko to wewnątrz kwerendy LINQ, ex:MySqlDateTime w kwerendzie LINQ
var prodRowFindQuery =
from x in production.AsEnumerable()
where x.Field<MySqlDateTime>("date") == row.Field<MySqlDateTime>("date") &&
x.Field<String>("device_id3") == row.Field<String>("device_id3")
select x;
To daje mi błąd kompilatora:
operator '==' nie mogą być stosowane do operandy typu „MySql.Data .Types.MySqlDateTime”i 'MySql.Data.Types.MySqlDateTime'
Więc próbuję to:
var prodRowFindQuery =
from x in production.AsEnumerable()
where x.Field<MySqlDateTime>("date").ToString() == row.Field<MySqlDateTime>("date").ToString() &&
x.Field<String>("device_id3") == row.Field<String>("device_id3")
select x;
teraz kompiluje, ale dostaję e run-time rror:
Określona obsada jest nieprawidłowa.
stosu Ślad:
IthacaDbTransferUtil.exe!IthacaDbTransferUtil.DataTableComparer.CompareTables.AnonymousMethod__0(System.Data.DataRow x = {System.Data.DataRow}) Line 34 C#
System.Core.dll!System.Linq.Enumerable.WhereEnumerableIterator<System.Data.DataRow>.MoveNext() + 0x9c bytes
IthacaDbTransferUtil.exe!IthacaDbTransferUtil.DataTableComparer.CompareTables(System.Data.DataTable aggregate = {System.Data.DataTable}, System.Data.DataTable production = {System.Data.DataTable}) Line 39 + 0x8b bytes C#
IthacaDbTransferUtil.exe!IthacaDbTransferUtil.DbTransferWindowViewModel.CopyTestReliability() Line 177 + 0x94 bytes C#
IthacaDbTransferUtil.exe!IthacaDbTransferUtil.DelegateCommand.Execute() Line 78 + 0x1f bytes C#
IthacaDbTransferUtil.exe!IthacaDbTransferUtil.DelegateCommand.System.Windows.Input.ICommand.Execute(object parameter = null) Line 158 + 0xa bytes C#
PresentationFramework.dll!System.Windows.Controls.Button.OnClick() + 0xaf bytes
PresentationFramework.dll!System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(System.Windows.Input.MouseButtonEventArgs e) + 0x117 bytes
PresentationCore.dll!System.Windows.RoutedEventArgs.InvokeHandler(System.Delegate handler, object target) + 0x56 bytes
PresentationCore.dll!System.Windows.EventRoute.InvokeHandlersImpl(object source, System.Windows.RoutedEventArgs args, bool reRaised) + 0x270 bytes
PresentationCore.dll!System.Windows.UIElement.ReRaiseEventAs(System.Windows.DependencyObject sender = {System.Windows.Controls.Button}, System.Windows.RoutedEventArgs args = {System.Windows.Input.MouseButtonEventArgs}, System.Windows.RoutedEvent newEvent) + 0x183 bytes
PresentationCore.dll!System.Windows.RoutedEventArgs.InvokeHandler(System.Delegate handler, object target) + 0x56 bytes
PresentationCore.dll!System.Windows.EventRoute.InvokeHandlersImpl(object source, System.Windows.RoutedEventArgs args, bool reRaised) + 0x270 bytes
PresentationCore.dll!System.Windows.UIElement.RaiseEventImpl(System.Windows.DependencyObject sender = {System.Windows.Controls.Button}, System.Windows.RoutedEventArgs args = {System.Windows.Input.MouseButtonEventArgs}) + 0x14e bytes
PresentationCore.dll!System.Windows.UIElement.RaiseTrustedEvent(System.Windows.RoutedEventArgs args = {System.Windows.Input.MouseButtonEventArgs}) + 0x64 bytes
PresentationCore.dll!System.Windows.Input.InputManager.ProcessStagingArea() + 0x431 bytes
PresentationCore.dll!System.Windows.Input.InputProviderSite.ReportInput(System.Windows.Input.InputReport inputReport) + 0xfd bytes
PresentationCore.dll!System.Windows.Interop.HwndMouseInputProvider.ReportInput(System.IntPtr hwnd, System.Windows.Input.InputMode mode, int timestamp, System.Windows.Input.RawMouseActions actions, int x, int y, int wheel) + 0x410 bytes
PresentationCore.dll!System.Windows.Interop.HwndMouseInputProvider.FilterMessage(System.IntPtr hwnd = 396436, MS.Internal.Interop.WindowMessage msg = WM_LBUTTONUP, System.IntPtr wParam = 0, System.IntPtr lParam = 34472260, ref bool handled = false) + 0x388 bytes
PresentationCore.dll!System.Windows.Interop.HwndSource.InputFilterMessage(System.IntPtr hwnd, int msg, System.IntPtr wParam, System.IntPtr lParam, ref bool handled) + 0x7c bytes
WindowsBase.dll!MS.Win32.HwndWrapper.WndProc(System.IntPtr hwnd, int msg, System.IntPtr wParam, System.IntPtr lParam, ref bool handled) + 0x14a bytes
WindowsBase.dll!MS.Win32.HwndSubclass.DispatcherCallbackOperation(object o) + 0x80 bytes
WindowsBase.dll!System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate callback, object args, int numArgs) + 0x5e bytes
WindowsBase.dll!MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(object source = {System.Windows.Threading.Dispatcher}, System.Delegate method, object args, int numArgs, System.Delegate catchHandler = null) + 0x47 bytes
WindowsBase.dll!System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority priority, System.TimeSpan timeout, System.Delegate method, object args, int numArgs) + 0x2bc bytes
WindowsBase.dll!MS.Win32.HwndSubclass.SubclassWndProc(System.IntPtr hwnd, int msg, System.IntPtr wParam, System.IntPtr lParam) + 0x140 bytes
[Native to Managed Transition]
[Managed to Native Transition]
WindowsBase.dll!System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame frame) + 0x112 bytes
PresentationFramework.dll!System.Windows.Application.RunInternal(System.Windows.Window window) + 0x17a bytes
PresentationFramework.dll!System.Windows.Application.Run() + 0x67 bytes
IthacaDbTransferUtil.exe!IthacaDbTransferUtil.App.Main() + 0x77 bytes C#
[Native to Managed Transition]
[Managed to Native Transition]
Microsoft.VisualStudio.HostingProcess.Utilities.dll!Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() + 0x5a bytes
mscorlib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx) + 0x285 bytes
mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx) + 0x9 bytes
mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) + 0x57 bytes
mscorlib.dll!System.Threading.ThreadHelper.ThreadStart() + 0x51 bytes
[Native to Managed Transition]
Innym przykładem Próbowałem:
var prodRowFindQuery =
from x in production.AsEnumerable()
where Convert.ToDateTime(x.Field<MySqlDateTime>("date")) == Convert.ToDateTime(row.Field<MySqlDateTime>("date")) &&
x.Field<String>("device_id3") == row.Field<String>("device_id3")
select x;
Wciąż podnosi błąd czasu wykonywania:
Określony oddanych nie jest prawidłowy.
Inny przykład:
var prodRowFindQuery =
from x in production.AsEnumerable()
where x.Field<DateTime>("date") == row.Field<DateTime>("date") &&
x.Field<String>("device_id3") == row.Field<String>("device_id3")
select x;
sam błąd run-time:
Określony oddanych nie jest prawidłowy.
Ktoś powiedział coś o "data" nie jest rodzajem MySqlDateTime, dla zabawy, oto dowód, że jest to:
var prodRowFindQuery =
from x in production.AsEnumerable()
where x.Field<String>("date") == row.Field<String>("date") &&
x.Field<String>("device_id3") == row.Field<String>("device_id3")
select x;
wyjątek Run-time:
Nie można rzutować obiektu wpisz "MySql.Data.Types.MySqlDateTime", aby wpisać "System.String".
Próbowałem kilku innych rzeczy i nic nie działa dla mnie.
Każda pomoc będzie mile widziana,
Pozdrawiam,
Kyle
Dodaj ślad stosu do otrzymanego wyjątku. –
Monitorowanie stosu Dodano – kformeck
. Funkcja TotString() może nie być obsługiwana bez operandów formatu. czy próbowałeś .Equals()? –