sql >> Databasteknik >  >> RDS >> Sqlserver

Förhindrar SQL-injektion i ASP.Net

Försök att använda en parameteriserad fråga här är en länk http://www.aspnet101.com/2007/03/parameterized-queries-in-asp-net/

Använd inte OpenQuery... använd detta för att köra select

SELECT * FROM db...table WHERE ref = @ref AND bookno = @bookno

Fler artiklar som beskriver några av dina alternativ:

http://support.microsoft.com/kb/314520

Vad är T-SQL-syntaxen för att ansluta till en annan SQL-server?

Redigerad

Obs:Din ursprungliga fråga var om distribuerade frågor och länkade servrar. Den här nya satsen refererar inte till en distribuerad fråga. Jag kan bara anta att du ansluter direkt till databasen nu. Här är ett exempel som borde fungera. Här är en annan referenssida för att använda SqlCommand.Parameters

SqlCommand cmd = new SqlCommand("Select * from Table where [email protected]", con); 
cmd.Parameters.Add("@ref", SqlDbType.Int);
cmd.Parameters["@ref"] = 34;

Redigerad:

Ok Jamie taylor, jag ska försöka svara på din fråga igen.

Du använder OpenQuery eftersom du förmodligen använder en länkad DB

I grund och botten är problemet att OpenQuery-metoden tar en sträng som du inte kan skicka en variabel som en del av strängen du skickade till OpenQuery.

Du kan formatera din fråga så här istället. Notationen följer servernamn.databasnamn.schemanamn.tabellnamn. Om du använder en länkad server via odbc, utelämna databasnamn och schemanamn, som illustreras nedan

    Dim conn As SqlConnection = New SqlConnection("your SQL Connection String")
    Dim cmd As SqlCommand = conn.CreateCommand()
    cmd.CommandText = "Select * db...table where investor = @investor"
    Dim parameter As SqlParameter = cmd.CreateParameter()
    parameter.DbType = SqlDbType.Int
    parameter.ParameterName = "@investor"
    parameter.Direction = ParameterDirection.Input
    parameter.Value = 34


  1. Oracle-inställning per användarens standardschema (inte ändra en session)

  2. Använda utökade händelser för att logga föråldrade funktioner som används i en SQL Server-instans (T-SQL-exempel)

  3. Hämta en lista över privata procedurer/funktioner från en paketkropp

  4. Oracle String Functions (fullständig lista)