2

私はc#でSQLステートメントを作成しており、前の形式のテキストボックスから値を取得しようとしています。

SqlParameter PeriodFrom = new SqlParameter("@PeriodFrom", SqlDbType.VarChar);
PeriodFrom.Value = 

等号の後に何が表示されるのかわかりません。フォームを試してみましたname.textbox name

4

6 に答える 6

0

フォームの背後にあるコードで、フォームクラス内で、プロパティを宣言できます。

public string TextBoxValue
{
    get
    {
        return textBoxName.Text;
    }
}

そして、次のようにSqlParameterで使用できます。

    SqlParameter PeriodFrom = new SqlParameter("@PeriodFrom", SqlDbType.VarChar);

PeriodFrom.Value = FormClassName.TextBoxValue;

編集:

Formクラスオブジェクトは静的ではなく、永続化されないため、これは機能しません。これを機能させるには、Programクラスに変更を加える必要があります。次のように、Programクラスに静的データメンバーを追加する必要があります。

public static FormClassName form;

そして、以下のようにmainメソッドでこれを渡す必要があります。

form = new FormClassName();
Application.Run(form);

そして、SQLParameterでは、次のように渡すことができます。

SqlParameter PeriodFrom = new SqlParameter("@PeriodFrom", SqlDbType.VarChar);
PeriodFrom.Value = Program.form.TextBoxValue;

私はあなたに価値を得る方法の1つを与えようとしましたが、これは良い習慣ではないと思います。理想的には、フォーム間またはレイヤー間で値を渡すために、コンテキストやセッションなど、値を格納および取得するための何らかのメカニズムが必要です。これは解決策ではなく、回避策です。また、上記の変更によりコードがめちゃくちゃになった場合、私は責任を負いません。:)

于 2012-07-17T11:58:15.870 に答える
0
YourPreviousForm.YourTextBox.Text
于 2012-07-17T11:20:53.640 に答える
0

Textのプロパティを使用してテキストボックスの値を取得しますTextBox

 PeriodFrom.Value =PrevForm.TextBox.Text;

保護レベルのためにアクセス可能性がないと言っているので、フォームのアクセス修飾子をからprotectedpublicアクセスできるようにする必要があります。

于 2012-07-17T11:21:44.000 に答える
0

TextBoxがフォームで公に宣言されている場合は、TextBoxが作成されたスコープからそのプロパティにアクセスできます。

PeriodFrom.Value = otherForm.TextBoxName.Text;

'previous'フォームオブジェクトが現在使用できない場合は、値を取得して、パラメータとして新しいフォーム(またはある種のもの)に渡す必要があります。ここでヘルプが必要な場合は、より多くのコード/詳細を提供してください。

于 2012-07-17T11:25:53.063 に答える
0

テキストボックスの修飾子プロパティをPublicに変更してから

formname.textboxname.Text

于 2012-07-17T11:27:15.073 に答える
0
<%@ PreviousPageType VirtualPath="~/SourcePage.aspx" %> 


if(PreviousPage != null)
{
    if(PreviousPage.IsCrossPagePostBack == true)
    {
            PeriodFrom.Value =PrevForm.TextBox.Text;
    }
}
else
{
    PeriodFrom.Value = "Not a cross-page post.";
}
于 2012-07-17T11:28:07.367 に答える