[英]Unknown Error - Incorrect syntax near
我想知道為什么該類不起作用,但是如果這段代碼是直接在aspx頁面中編寫的,那么它將起作用。 我希望在一個類中使用它,因為在多個頁面中多次調用它來檢查用戶是否已被視為訪問者。 這樣做的主要思想是計算訪問我網站的用戶數量。
錯誤是這樣的: ':'附近的語法不正確
說明:執行當前Web請求期間發生未處理的異常。 請查看堆棧跟蹤,以獲取有關錯誤及其在代碼中起源的更多信息。
異常詳細信息: System.Data.SqlClient.SqlException:':'附近的語法不正確。
這是代碼:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Net;
using System.IO;
using System.Data;
using System.Text;
namespace Project
{
public class ipAddress
{
SQL com = new SQL(); //Class to make SQL connection and do querys
public void GetPublicIP()
{
WebClient web = new WebClient();
System.IO.Stream stream = web.OpenRead(url);
string text = "";
using (System.IO.StreamReader reader = new System.IO.StreamReader(stream))
{
text = reader.ReadToEnd();
reader.Close();
}
string results = "";
try
{
foreach (DataRow item in com.Execute("select * from table where ip = '" + text + "' and data = '" + DateTime.Now.ToShortDateString() + "';").Rows)
{
results = item["ip"].ToString();
}
if (results == "")
{
com.FazerComando("insert into table (ip, date) values ('" + text + "', '" + DateTime.Now.ToShortDateString() + "');");
}
}
catch { }
}
}
}
問候...
好吧,我們不知道這個SQL
類是什么,但是看起來您正在將值直接注入SQL中,這是一個非常糟糕的主意 。 它會引發SQL注入攻擊 ,混合代碼和數據,並使圍繞數字和日期/時間值的轉換比其所需的難度大得多。 (在這種特殊情況下,您很幸運-您正在構建的字符串只是無效的SQL。例如,這並不是清除數據庫。)
相反,您應該使用參數化的SQL ,在該參數中,SQL本身應包含“占位符”,並分別提供值。
假設SQL
是您自己的類,則應為它提供使用參數化SQL的便利。 有關示例,請參見SqlCommand.Parameters
。
您的“文本”變量中帶有撇號(或更糟)。 您基本上是在自我注入SQL數據庫。 非常非常糟糕的棗。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.