试图获取文本框的值

时间:2012-07-17 11:19:05

标签: c# sql

我正在c#中创建一个sql语句,我试图从以前形式的文本框中获取值:

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

我只是不确定等号之后会发生什么。我尝试了name.textbox name形式。

6 个答案:

答案 0 :(得分:0)

YourPreviousForm.YourTextBox.Text

答案 1 :(得分:0)

使用Text TextBox属性获取文本框的值。

 PeriodFrom.Value =PrevForm.TextBox.Text;

正如您所说,由于保护级别没有accessbile,您需要处理从protectedpublic的表单访问修饰符,以便可以访问它。

答案 2 :(得分:0)

如果您的TextBox在表单上公开声明,那么您将能够从创建它的作用域中访问其属性。

PeriodFrom.Value = otherForm.TextBoxName.Text;

如果您现在无法使用“上一个”表单对象,则必须检索该值并将其作为参数传递到新表单(或某些类型)中。如果您需要帮助,请提供更多代码/详细信息。

答案 3 :(得分:0)

将文本框的修饰符属性更改为“公共” 那么

formname.textboxname.Text

答案 4 :(得分: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.";
}

答案 5 :(得分:0)

在表单后面的代码中,在表单类中,您可以声明一个属性:

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

您可以将它与SqlParameter一起使用,如下所示:

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

PeriodFrom.Value = FormClassName.TextBoxValue;

编辑:

这不起作用,因为Form类对象不是静态的,并且不会持久存在。要使这项工作,您需要更改Program类。您需要在Program类中添加一个静态Data成员,如下所示:

public static FormClassName form;

并且需要在main方法中传递它,如下所示:

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

在SQLParameter中你可以像这样传递它:

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

我试图给你一个获得价值的方法,但我认为这不是一个好习惯。理想情况下,为了在表单或层之间传递值,您需要有一些用于存储和检索值的机制,如上下文或会话。这不是解决方案,而是一种解决方法。如果由于上述变化导致代码混乱,我不承担任何责任。 :)