1

以下のコードによると、値(newrev、newreview)を取得して変数を入力した後、それらをラベル( "some text" + newrev)に配置する必要があります。しかし、私は問題(newrev)が現在のコンテキストに存在しないという問題があります。

Label1.Text = "Review Number:" + newReview + "(for preparing of Rev." + newrev+")";

protected void ddlProjectDocument_SelectedIndexChanged(object sender, EventArgs e)
{
    _DataContext = new EDMSDataContext();

    var x = ddlProjectDocument.SelectedValue;

    var MaxRev = (from rev in _DataContext.tblTransmittalls
                  where rev.DocID.ToString() == ddlProjectDocument.SelectedValue
                  select  rev.REV).Max();

    if (MaxRev == null)
    {
        var newRev = 0;

    }

    else
    {

        var newRev = Convert.ToInt32(MaxRev) + 1;

    }

    var MaxReview = (from rev in _DataContext.tblFiles
                  where (rev.DocId.ToString()==ddlProjectDocument.SelectedValue)&&   
                        (rev.Rev.ToString()==MaxRev)
                  select rev.Review).Max();

    if (MaxReview == null)
    {
        var newReview = 1;
    }

    else
    {    
        var newReview = Convert.ToInt32(MaxReview) + 1;
    }

    Label1.Text = "Review Number:" + newReview + "(for preparing of Rev." + newrev+")";
}
4

4 に答える 4

2

次のように関数を定義newRevnewReview、関数の先頭に置きます。

protected void ddlProjectDocument_SelectedIndexChanged(object sender, EventArgs e)
{
    _DataContext = new EDMSDataContext();
    int newRev;
    int newReview;

次に、それらを使用する場合は、(新しい変数を宣言する)書き込む代わりにvar newReview = ...、...を削除しvarます。例:

if (MaxReview == null)
{
    newReview = 1;
}

違い: 宣言されたすべての変数には、プログラムの残りの部分に対する可視性を決定するスコープがあります。あなたの場合、newReviewステートメント内でのみ認識ifされているため、外部で参照しようとすると、存在しなくなります。

于 2013-02-19T14:57:48.007 に答える
1

これは、さまざまなifステートメント内でnewRevを宣言しているため、外部レベルで宣言します。

int newRev;
if (MaxRev == null)
{
    newRev = 0;

}
于 2013-02-19T14:58:49.830 に答える
1

ステートメントnewRevの外側で宣言する必要があります。if

int newrev;
if(MaxRev == null)
    newRev = 0;
else
    newRev = Convert.ToInt32(MaxRev) + 1;
于 2013-02-19T14:56:45.557 に答える
1

C#はJavaScriptではないので、使用する「var」を少なくする必要があります...内部でnewRevを定義しています

if (MaxRev == null)
{
    var newRev = 0;
}

ここで定義する

protected void ddlProjectDocument_SelectedIndexChanged(object sender, EventArgs e)
{
     _DataContext = new EDMSDataContext();
     var newRev = 0;
     ....
}
于 2013-02-19T14:58:01.970 に答える