- PR -

IF 〜 ELSE IF 〜 IF

1
投稿者投稿内容
はまよし
会議室デビュー日: 2002/08/19
投稿数: 8
投稿日時: 2002-10-04 20:11
こんな単純な.NETのバグはありえないと思うのですが、
以下のコードでmode == "update" の場合、
処理Bを実行後、処理Cも実行されます。
この件に関して情報をお持ちの方は、ぜひご連絡ください。
switch文を用いても同様に1つのcase句の処理を行った後、default句の処理も実行されます。

string mode;
if ( mode == "new" )
{
//処理A
}
//更新の場合
else if( mode == "update")
{
//処理B
}
else
{
//処理C(エラーをthrow)
}
はまよし
会議室デビュー日: 2002/08/19
投稿数: 8
投稿日時: 2002-10-04 20:30
再現させようとしましたが、
他のプログラムだと再現しませんでした。
念のため、ソースを貼り付けました。
よろしくお願いいたします。

private void Page_Load(object sender, System.EventArgs e)
{
try
{
string mode = "";
lbMessage.Text = "";
//モードを取得
mode = Application.Get("mode").ToString();
//mode = "update";

//ドロップダウンリストのデータ連結
sqlConnection1.Open();
fillListData();
sqlConnection1.Close();

//テキストボックスに表示
if ( IsPostBack )
return;

//JOB種類ドロップダウンをバインド
dlJobnoKind.DataBind();

//新規登録の場合
if ( mode == "new" )
{
//リンクボタンのTextをセット
LinkButton1.Text = "新規登録";
//期を"05"にセット(仮)
tbJobnoPeriod.Text = "05";
}
//更新の場合
else if( mode == "update")
{
LinkButton1.Text = "更新";
//RequestオブジェクトからIDパラメータ値を取り出す
int jobID = Int32.Parse(Request.Params["ID"]);
//int jobID=1;

//クエリの@IDに値をセット
sqlDataAdapter1.SelectCommand.Parameters["@ID"].Value = jobID;

//JOBデータを取得
sqlConnection1.Open();
sqlDataAdapter1.Fill(dataSet1);

//textboxにデータを表示
setTextData();

sqlConnection1.Close();
}
else
{
mode = "a";
}
}
catch(SqlException )//DBエラー
{
lbMessage.Text = "SQLServerが警告またはエラーを返しました";
//lbMessage.Text = ex.Message.ToString();
string mes = lbMessage.Text;
}

}
1

スキルアップ/キャリアアップ(JOB@IT)