次のコードでは、役に立たないエラー メッセージが表示されます (例外ダイアログの切り捨てられたタイトル バーに表示されるエラー メッセージは、"System.Data.SQLServer..." だけです)。
string query = "SELECT * FROM EVERYTHING";
SqlCeCommand cmd = new SqlCeCommand(query);
SqlCeConnection conn = new SqlCeConnection(myConnStr);
conn.Open();
cmd.Connection = conn;
SqlCeDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection); // <-- Blows up bigger than an Augustus Gloop pinata
アップデート
私はこれを追加しました:
MessageBox.Show(string.Format("query is {0}", query));
...失敗したクエリが何であったかについて健全性チェックを行うため、最終的には髪の毛の塊が私の作業領域全体に散らばっています。クエリをフィードするためにこれがありました:
string vendorId = txtVendor.ToString().Trim();
...これの代わりに:
string vendorId = txtVendor.Text.ToString().Trim();
...したがって、クエリは「SELECT BLA FROM BLA WHERE BLA = System.Windows.Forms.Label」でした
これで、少なくとも「行/列のデータがありません」というエラーメッセージが表示されます。