質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.44%
MEL

MEL (Maya Embedded Language) とはAutodesk Mayaで利用されるスクリプト言語です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

Q&A

解決済

1回答

648閲覧

MVC bool型のIf文

tjaxgjj

総合スコア12

MEL

MEL (Maya Embedded Language) とはAutodesk Mayaで利用されるスクリプト言語です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

0グッド

0クリップ

投稿2022/09/28 06:50

編集2022/09/28 07:49

前提

asp.netを使用しています。
データベースに接続し、一覧画面と新規登録画面を作成しています。
sql
社員テーブル
社員名 | 社員番号 | 役職
a | 1 | 社員
b | 2 | 管理職
・・・

実現したいこと

新規登録画面でチェックボックスチェックされている際は
command.CommandText = "INSERT into Syain VALUES( ’s’,3,管理職);

されていない時は
command.CommandText = "INSERT into Syain VALUES( ’s’,3,社員); ・・・
のようにif文を書きたいです。

チェックボックスがチェックされて登録ボタンを押すと
役職カラムに管理職と登録され、
チェックボックスがチェックされないまま登録ボタンを押すと
役職カラムに社員と登録できるようにしたいです。

発生している問題・エラーメッセージ

controller

if (!bool.IsNullOrEmpty(model.役職))  { command.CommandText = "INSERT into Bihin VALUES ・・・"; } else {      command.CommandText = "INSERT into Bihin VALUES ・・・"; }

IsNullOrEmptyにboolにIsNUllOrEmptyの定義がありません。とエラーが出ます。
Stringの際はIsNullOrEmptyでできるのですが、
boolの際はどのように書けばよいのでしょうか。

該当のソースコード

model

public string 社員名 { get; set; } public string 社員番号 { get; set; } public bool 役職 { get; set; }

View

html

1 @Html.CheckBoxFor(model => model.役職)

補足情報(FW/ツールのバージョンなど)

ASP.NET MVC 
Windows 10 Pro,
Visual Studio2022 Version 17.3.2
.NET framework 4.7.2

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2022/09/28 06:55 編集

model.isogiがnullのときがあるのでしょうか。
tjaxgjj

2022/09/28 07:00

すみません、誤字を発見したので修正しました。 model.isogiをmodel.役職に変更しました。 >model.isogiがnullのときがあるのでしょうか。 nullというよりチェックボックスにチェックされていない時ということが言いたかったです>< チェックされるかチェックされないかの二択なのでよく考えたらnullはないですね、、
tjaxgjj

2022/09/28 07:23

サイト拝見しました。ありがとうございます。 if (!bool.IsNullable(model.役職))にしてみたのですが、 boolにIsNullableの定義がありませんとエラーになってしまいます。 そもそもIsNullableではないですか? 詳しく教えていただきたいです><
tjaxgjj

2022/09/28 07:39

わざわざありがとうございます。 チェックというのはチェックボックスにチェックされているということですか??
m.ts10806

2022/09/28 07:40 編集

そういうbool型の変数名です。 あくまで単なるミニマムコードなので。
退会済みユーザー

退会済みユーザー

2022/09/28 08:24

> if (!bool.IsNullOrEmpty(model.役職)) > IsNullOrEmptyにboolにIsNUllOrEmptyの定義がありません。とエラーが出ます。 ホントに C# に文法の基本のキが分かってなくて、ここのような文章でやりとりする掲示板では話が通じなくて、解決が難しいですよ。基本を勉強しましょうよ。 C# の if (...) の ... は何であるべきか調べてみましょうよ。
guest

回答1

0

ベストアンサー

以下のように組めそうですが如何でしょうか

C#

1 string 役職 = (model.役職)?"管理職":"社員"; 2 string sql = "INSERT into Syain VALUES( ’s’,3,'"+役職+"')"; 3

投稿2022/09/28 07:19

編集2022/09/28 21:01
m.ts10806

総合スコア80871

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tjaxgjj

2022/09/28 07:38

string 役職 = (model.管理職)?"管理職":"社員"; のmodel.管理職はmodelにあるのは役職なので、 model.役職ということですか? どういった処理をしているのかが理解できていないです><
m.ts10806

2022/09/28 07:39 編集

あぁ失礼コピペミスです。Viewのほうを見ていました。 修正します。
m.ts10806

2022/09/28 07:42

>どういった処理をしているのかが理解できていないです>< 三項演算子です。 以下を1行で書いただけ。 string 役職 = ""; if(model.役職){ 役職 = "管理職"; }else{ 役職 = "社員"; } SQLも共通となる部分がほとんどなので、可変的なところを変数にして変更箇所を少なくしただけです。
tjaxgjj

2022/09/28 07:51

すみません、私の修正漏れです>< 詳しくありがとうございます!とても分かりやすいです!! 試してみます!
tjaxgjj

2022/09/28 08:26

ありがとうございました!できました!
退会済みユーザー

退会済みユーザー

2022/09/28 08:30

C# の if (...) の ... は何であるべきかということと、.NET の bool(Boolean構造体)に IsNullOrEmpty などというメソッドはないということが分ってなくて、テキトーにメチャクチャやってるのが問題です。
m.ts10806

2022/09/28 11:05

SurferOnWwwさん 補足ありがとうございます。 私もそこまで突っ込むのはどうかとは思っていましたが、 確かに「条件式とは何か」「型とそれが持つ機能」という基本の基本部分の理解は 絶対不可欠だと思います。
m.ts10806

2022/09/28 21:03

>低評価された方 理由のコメントを。 私の回答であれば無関係に上から順番に低評価していませんか? そのような使い方をするのであれば単なる嫌がらせ行為でしかありません。 何やら機能改善がされるらしいので、その後どうなるかは期待してはいますが、 同じようなやり口であればやはり通報せざるを得ません。(既に運営相談済み) 隠れて嫌がらせ行為をするのは陰湿で卑怯でしかないので、堂々と指摘してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.44%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問