cmd = new SQLiteCommand();
...
if (Convert.ToInt32(cmd.ExecuteScalar()) == 0)
goto doClose;
else
cmd.CommandText = sql;
reader = cmd.ExecuteReader(); // this is line 182, check the exception details below
更多:我要睡觉了。下面是代码源(我来自 GitHub 的仓库),如果有人可以看一下吗?git@github.com:tomxuetoy/WPF_startPrograms.git
以上是我的代码,它可以正常工作。在我的情况下cmd.ExecuteScalar()
,由于SQLite
表不存在,将返回 null。我试图改变它,如下所示,但失败了:
if (cmd.ExecuteScalar() == null)
所以我想知道为什么我不能直接压缩表达式(null
返回)null
?谢谢!
更多:尝试了以下但结果相同:无法工作
if (cmd.ExecuteScalar() == DBNull.Value)
or
if (cmd.ExecuteScalar() is DBNull)
详细的异常复制如下,但有一些汉字......
System.Windows.Markup.XamlParseException occurred
HResult=-2146233087
Message=对类型“MultiStart.MainWindow”的构造函数执行符合指定的绑定约束的调用时引发了异常。
Source=PresentationFramework
LineNumber=0
LinePosition=0
StackTrace:
在 System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
InnerException: System.Data.SQLite.SQLiteException
HResult=-2147467259
Message=SQLite error
no such table: testTable
Source=System.Data.SQLite
ErrorCode=-2147467259
StackTrace:
在 System.Data.SQLite.SQLite3.Prepare(SQLiteConnection cnn, String strSql, SQLiteStatement previous, UInt32 timeoutMS, String& strRemain)
在 System.Data.SQLite.SQLiteCommand.BuildNextCommand()
在 System.Data.SQLite.SQLiteCommand.GetStatement(Int32 index)
在 System.Data.SQLite.SQLiteDataReader.NextResult()
在 System.Data.SQLite.SQLiteDataReader..ctor(SQLiteCommand cmd, CommandBehavior behave)
在 System.Data.SQLite.SQLiteCommand.ExecuteReader(CommandBehavior behavior)
在 System.Data.SQLite.SQLiteCommand.ExecuteReader()
在 MultiStart.MainWindow.dbOp(dowhat dw) 位置 c:\Users\Administrator\Desktop\WPF_startPrograms\WpfApplication2\WpfApplication2\MainWindow.xaml.cs:行号 182
在 MultiStart.MainWindow.DataBinding() 位置 c:\Users\Administrator\Desktop\WPF_startPrograms\WpfApplication2\WpfApplication2\MainWindow.xaml.cs:行号 43
在 MultiStart.MainWindow..ctor() 位置 c:\Users\Administrator\Desktop\WPF_startPrograms\WpfApplication2\WpfApplication2\MainWindow.xaml.cs:行号 36
InnerException: