public partial class HardwareInformation : BaseForm
{
string sWhere = "";
public HardwareInformation()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
SqlConnection objConn1 = new SqlConnection("Data Source=192.168.0.203;Initial Catalog=costing;User ID=sa;[email protected]");
if (searchtextbox.Text.Trim() != "")
{
sWhere = "Where Srno '" + searchtextbox.Text;
}
SqlDataAdapter objAdapter = new SqlDataAdapter(@"Select distinct [Srno] ,[Employee Name] , [Department] , [Thin Client] , [Desktop] , [Lcd] , [Moniter] , [Printer] , [Ups] from [dbo].[HardwareDetail] " + sWhere + "", objConn1);
DataTable objTable = new DataTable();
objAdapter.Fill(objTable);
dataGridView1.DataSource = objTable;
dataGridView1.Columns[0].Width = 25;
for (int i = 1; i < dataGridView1.Columns.Count; i++)
{
dataGridView1.Columns[i].ReadOnly = true;
}
}
-1
A
回答
2
使用
"Where Srno = '" + searchtextbox.Text + "'";
你以後的TextBox文本之後Srno
和關閉單引號忘記=
跡象之後。
在SqlDataAdapter的創建,在最後一次使用
"[Ups] from [dbo].[HardwareDetail] " + sWhere, objConn1);
而且BTW請beaware SQL注入攻擊線。
+1
接受答案是謝謝你............只是開玩笑。 ;) –
1
在文本框文本後面缺少=缺少符號和結束引用。因此它應該是
"Where Srno = '" + searchtextbox.Text +"'";
1
您的代碼易受SQL Injection attacks影響。你應該永遠不要直接插入用戶輸入到你的SQL,而不消毒。你真的需要改變一個參數化查詢:
SqlDataAdapter objAdapter = new SqlDataAdapter(@"Select distinct [Srno] ,[Employee Name] , [Department] , [Thin Client] , [Desktop] , [Lcd] , [Moniter] , [Printer] , [Ups] from [dbo].[HardwareDetail] WHERE Srno = @srno", objConn1);
// Change the length and dbtype to match your needs
objAdapter.Parameters.Add("@srno", SqlDbType.NChar, 15, searchtextbox.Text);
DataTable objTable = new DataTable();
objAdapter.Fill(objTable);
這可以節省您從注入漏洞,同時也消除了需要逃避的報價和其他特殊字符。
相關問題
- 1. 不能找到錯誤(未閉合的引號的字符串「」之後。)
- 2. 動態SQL查詢導致「未閉合的引號」的錯誤
- 3. 在引號之間獲取字符串
- 4. 提取單引號字符串和雙引號字符串
- 5. int到字符串,字符串索引號錯誤
- 6. t-sql中的字符串單引號
- 7. 在Java單引號的SQL字符串
- 8. sql中字符串的單引號
- 9. Python:獲取字符串索引的行號和列號?
- 10. 獲取符號之間的字符串
- 11. '+ replicate('。在字符串'後面的未封閉引號')順序錯誤1'
- 12. 關閉字符串的一個錯誤
- 13. 獲取字符串索引
- 14. 獲取字符串集合
- 15. SQL - 在英鎊(#)符號後從字符串獲取數字
- 16. SH:1:語法錯誤:未結束的引號的字符串
- 17. 字符串中的引號
- 18. 獲取WebClient錯誤作爲字符串
- 19. 錯誤獲取avro字符串
- 20. Groovy獲取字符串錯誤
- 21. 從括號,括號和連字符的字符串中獲取子字符串
- 22. UPDATE SQL字符串錯誤
- 23. Android:獲取其編號的字符串
- 24. 獲取包含字符串的行號
- 25. 動態T-SQL引號字符串
- 26. 獲取錯誤字符串OpenSSL中的證書錯誤
- 27. 獲取字符串索引超出範圍錯誤
- 28. 獲取使用sql的子字符串之前的字符串?
- 29. 使用rustc_serialize並獲取未加引號的字符串
- 30. 如何獲取單引號內的字符串?
文本框中是否有單引號? –
不,沒有quatation標記 –
旁邊的一點點,但是:你應該在搜索框文本傳遞到SQL查詢之前真的做一些sanitisation,否則你的應用程序是開放的SQL注入攻擊(假設此代碼進入生產)。 – Moonshield