2014-11-04 44 views
0

代碼請幫助解決問題。我有asp.net應用程序。在* .aspx文件中,我有<asp:TextBox ID="txtemail" runat="server"></asp:TextBox>後面的代碼是cmd = new SqlCommand("insert into tbl_newemp values('"txtemail.Text"')", con);。當我嘗試編譯我的解決方案,我得到了以下錯誤該字段在當前上下文中不存在

The name 'txtemail' does not exist in the current context 

回答

1

您可以在解決方案資源管理器中右鍵單擊該頁面,並且有一個選項,如「轉換爲Web應用程序」,這將重新生成您的設計器文件。

0

我想你想要做的是:

cmd = new SqlCommand("insert into tbl_newemp values('" + txtemail.Text + "')", con); 

但是,你真的一定要使用參數

cmd = new SqlCommand("insert into tbl_newemp values(@p0)", con); 
cmd.Parameters.Add("@p0", GetType(String).Value = txtemail.Text; 

類似的東西。

+0

問題在於項目編譯失敗。在後面的代碼中,我無法訪問存在於我的頁面上的字段'txtemail'。 – 2014-11-04 19:39:05

+0

複製大部分標記(減去標題)並複製代碼。刪除頁面,讀取並複製內容。另外,檢查設計器文件並確保該控件的定義,並確保頁面中的所有內容安裝正確(@頁面標題正確,頁面鏈接正確等) – 2014-11-04 23:15:00

+1

如果在designer.cs中沒有txtemail變量,那麼在您的代碼後面添加一個類型爲TextBox的受保護變量,其名稱與您的代碼相同。另外,Brian的建議非常重要 - 如果您沒有參數化查詢和/或清理輸入,則您的代碼對SQL注入非常開放。 – sh1rts 2014-11-04 23:48:43

相關問題