Dim con As SqlConnection
con = New SqlConnection("server=chinna; uid=sa; [email protected]; database=icms")
con.Open()
Dim cmd As SqlCommand
cmd = New SqlCommand("select pass from personal where idno=" & TextBox1.Text, con)
cmd.CommandType = CommandType.Text
Dim rdr As SqlDataReader
rdr = cmd.ExecuteReader
If rdr.Read() Then
TextBox2.Text = rdr.ToString()
Response.Redirect("default.aspx")
Else
MsgBox("incorrect password")
回答
你需要在查詢中使用參數面臨的問題:
cmd = New SqlCommand("select pass from personal where [email protected]", con)
cmd.Parameters.AddWithValue("param", TextBox1.Text);
謝謝你正在工作 – 2011-04-29 14:55:33
你應該接受這個答案, – SLaks 2011-04-29 14:56:14
應該
cmd = New SqlCommand("select pass from personal where idno='" & TextBox1.Text & "'", con)
超出代碼似乎是ASP.net。我們無法在客戶端瀏覽器上顯示的VB.net中執行MsgBox。
加入引號會使其工作,但會留下SQL注入攻擊漏洞。如果文本框中的文本包含',那麼你可能會遇到麻煩,也就是文本'test'; DROP TABLE personal; GO'「 – pstrjds 2011-04-29 15:16:49
您錯過了DataSource任務。
在調用DataBind之前添加GridView1.DataSource = rdr
。
你如果塊應該是這樣的:在RDR
If rdr.Read() Then
GridView1.Visible = True
GridView1.DataSource = rdr
GridView1.DataBind()
End If
使用HasRows
並設置爲DataSource
GridView1
Dim rdr As SqlDataReader
rdr = cmd.ExecuteReader()
If rdr.HasRows Then
GridView1.Visible = True
GridView1.DataSource = rdr
GridView1.DataBind()
End If
使用ExecuteScalar
而不是ExecuteReader
。
Dim password As String
password = cmd.ExecuteScalar.ToString()
僅供參考,以純文本形式存儲密碼並像這樣比較是非常糟糕的做法。您應該使用單向醃製加密對密碼進行加密,然後在驗證時執行相同的操作,然後比較加密的值。
是的,但是你應該重複閱讀,而不是傾銷它到一個字符串。 – 2011-04-29 16:37:06
對不起,刪除了我的評論。 – mellamokb 2011-04-29 16:37:41
非常感謝您的先生 – 2011-04-29 16:38:44
- 您需要以某種方式標記用戶使用會話變量或登錄身份登錄。否則,任何人都可以通過直接導航到登錄版本的頁面。
MsgBox(
在asp.net中無效,因爲它會在服務器上顯示消息,而不是在客戶端上。嘗試使用頁面上的Label
來通過設置其文本來顯示錯誤消息。- 你有什麼問題?它只是「不工作」?它不會正確驗證您的密碼嗎?你會得到某種異常嗎?你可以發佈結果嗎?
- 1. OleDbConnection的執行commad查詢錯誤vb.net
- 2. 在執行查詢
- 3. 在查詢執行
- 4. 是否可以在vb.net上執行sql查詢?
- 5. 執行查詢
- 6. 執行查詢
- 7. 查詢執行
- 8. 查詢執行
- 9. 執行SQL查詢在PHP
- 10. 執行SQL查詢在CMD
- 11. 在codeigniter中查詢執行
- 12. 正在執行sql查詢
- 13. 在mysql查詢執行
- 14. 執行sqlalchemy存在查詢
- 15. 在JavaSparkStreamingContext中執行查詢
- 16. 在執行laravel查詢
- 17. 錯誤在執行查詢
- 18. 在執行SQL查詢
- 19. 在VB.NET中沒有運行SQL查詢
- 20. 查詢未執行
- 21. JDBC - 查詢執行
- 22. 把執行查詢
- 23. window.onbeforeunload執行查詢
- 24. SQLiteException執行查詢
- 25. 當執行查詢
- 26. 執行SQLite查詢
- 27. 執行SQL查詢
- 28. 執行SPARQL查詢
- 29. SQL查詢執行
- 30. LINQ執行查詢?
您有SQL注入易變性。 – SLaks 2011-04-29 14:21:39
你面臨什麼問題? 雖然你可以發現一些錯誤,但是你提供的信息很少,但是更多的信息不會是一件壞事。 – Ruben 2011-04-29 14:21:56
您應該命名您的文本框。 – SLaks 2011-04-29 14:23:05