2012-08-09 126 views
0

当我试图在用户提交后将我的页面加载值放入数据库时​​,我遇到了一个奇怪的错误。asp.net变量传递

页面加载时,我有这样的:

Public theProductName As String = "" 
Dim theProductCategory As String = "" 

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    If Not IsPostBack Then 
     LoadProductName() 
    End If 
End Sub 

Private Sub LoadProductName() 
    objConn = New MySqlConnection(product.strConnString) 
    objConn.Open() 

    strSQL = "SELECT id, name, category " & _ 
       "FROM product " & _ 
       "WHERE id = 4;" 

    Try 
     objCmd = New MySqlCommand(strSQL, objConn) 
     dtReader = objCmd.ExecuteReader() 

     While dtReader.Read() 
      theProductName = dtReader("name") 
      theProductCategory = dtReader("category") 
      btnSubmit.Text = "Add Item to " & theProductName 
     End While 

     dtReader.Close() 
     dtReader = Nothing 
     objConn.Close() 
     objConn = Nothing 
    Catch ex As Exception 
     MsgBox("LoadProductName: " & ex.Message) 
    End Try 
End Sub 

当我检查页面的启动那些价值,他们有正确的价值观,甚至提交按钮有产品名称。

但是,一旦我按下按钮后保存它,它具有相同的变量没有?

Private Sub btnSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSubmit.Click 

    Dim productName As String = theProductName.Replace(" ", "-") 
    Dim imageName As String = productName & "\" & Trim(txtModel.Text) & ".jpg'"  
    Dim theCat as String = theProductCategory 
End Sub 

产品名称,无非是为theCat

我该怎么办可以俯瞰?

+0

'theProductName'是什么?它看起来像一个字符串 - 在哪里声明/设置? – n8wrl 2012-08-09 15:28:44

+0

@ n8wrl:我用这些信息更新了我的OP。我有** Public **为** theProductName **,因为我在我的HTML页面中使用**(<%= theProductName%>)** – StealthRT 2012-08-09 15:35:17

回答

1

您必须ViewState,以保存数据。由于您发布的数据,使你失去了你的老态

public string ProductName 
{ 
    get 
    { 
     if(Viewstate["ProductName"] == null) 
     { 
     return string.Empty; 
     } 
     return (string)Viewstate["ProductName"]; 
    } 
    set 
    { 
    Viewstate["ProductName"] = value; 
    } 
} 

设定值

ProductName = "your value"; 
+0

如何在该视图状态中设置** theProductName **的值上面的代码? – StealthRT 2012-08-09 15:46:43

+0

只需输入以下代码:ProductName =“test”;我添加了设置部分 – 2012-08-09 15:48:42

+0

感谢您的帮助,Aghilas! – StealthRT 2012-08-09 16:07:46