Conversion failed when converting the nvarchar value

В чем ошибка?

string s = Page.User.Identity.Name.ToString();
            if (Page.User.Identity.Name != "")
            {
                connectionString = WebConfigurationManager.ConnectionStrings["OSBR"].ConnectionString;
                con = new SqlConnection(connectionString);
                con.Open();
                cmd = con.CreateCommand();
                cmd.CommandType = CommandType.Text;
                cmd = new SqlCommand("SELECT TOP(20) * FROM dbo.ReturnTable WHERE SiteID=" + s + "ORDER BY id DESC", con);
                reader = cmd.ExecuteReader();
                if (reader.Read())
                {
                    ReturnGrid.DataSource = reader;
                    ReturnGrid.DataBind();
                }
                reader.Close();
 
            }
            else
                Response.Redirect("Login.aspx");

Если SiteID=MKS то

string s = "MKS";
string sql = "SELECT TOP(20) * FROM dbo.ReturnTable WHERE SiteID=" + s + "ORDER BY id DESC";

Выбрать 20 строк где SiteID =MKS в обратном порядке. Нет? введите сюда описание изображения введите сюда описание изображения


Ответы (1 шт):

Автор решения: Qwertiy

А вот потому что надо делать не конкатенацию строк для формирования sql-запроса, а нормальный запрос с параметрами.

→ Ссылка