我正在c#中创建一个sql语句,我试图从以前形式的文本框中获取值:
SqlParameter PeriodFrom = new SqlParameter("@PeriodFrom", SqlDbType.VarChar);
PeriodFrom.Value =
我只是不确定等号之后会发生什么。我尝试了name.textbox name
形式。
答案 0 :(得分:0)
YourPreviousForm.YourTextBox.Text
答案 1 :(得分:0)
使用Text
TextBox
属性获取文本框的值。
PeriodFrom.Value =PrevForm.TextBox.Text;
正如您所说,由于保护级别没有accessbile,您需要处理从protected
到public
的表单访问修饰符,以便可以访问它。
答案 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;
我试图给你一个获得价值的方法,但我认为这不是一个好习惯。理想情况下,为了在表单或层之间传递值,您需要有一些用于存储和检索值的机制,如上下文或会话。这不是解决方案,而是一种解决方法。如果由于上述变化导致代码混乱,我不承担任何责任。 :)