[ad_1]
やあ、ピープス、
コード内で小さな (おそらく愚かな) エラーが発生しています。 なぜそれが起こっているのかはわかりませんが、ここの誰かがこれに光を当ててくれることを願っています。
まず最初に、データベースから単一の値を要求するデータセットがあります。
SQL
SELECT [menu$IsActive] FROM [Menu$Main] WHERE ([menu$NavURL] = @NavigateURL) AND ([menu$Host] = @Host)
私のコードには、(Page_Load イベント ハンドラーに) 次のものがあります。
C#
bool MenuIsActive = bool.Parse(taMenuBack.GetCurrentMenuState(HttpContext.Current.Request.Url.ToString(), HttpContext.Current.Request.URL.Host).ToString()); if (MenuIsActive) { btnChangeStatus.Text = "Set to Inactive"; } else { btnChangeStatus.Text = "Set to Active"; }
ページをプレビューすると、「文字列は有効なブール値として認識されませんでした」というメッセージが表示されます。 データセット内の SQL クエリは「Scalar」に設定されており、返される結果は間違いなくブール値です (返される実際の列タイプは「bit」です)。 これを行うと:
C#
string testString = taMenuBack.GetCurrentMenuState(HttpContext.Current.Request.Url.ToString(), HttpContext.Current.Request.URL.Host).ToString()
「True」を返します。 何か案は?
解決策 1
使ってみてください Boolean.Parse
。
実際には Boolean.TryParse
それが最善の策でしょう。
2 つの違いは CLS への準拠に関係している可能性があります。
私の知る限り、「True」と「False」は伝統的に VB.Net のブール型です。
解決策 2
おい、QmarsDev を聞いてください
最良の方法は TryParse を使用することです
string boolString = "True"; // Example boolean string bool boolValue; if (bool.TryParse(boolString, out boolValue)) { Debug.Log("Parsed boolean value: " + boolValue); } else { Debug.LogError("Failed to parse boolean value."); }
[ad_2]
コメント