Beste,
ik gebruik onderstaande functie voor het opvullen van een dataset met klantgegevens. Hierbij gebruik ik parameters om SQL injectie te voorkomen maar hij geeft een syntax error als ik bijvoorbeeld d'hondt invoer.
SQL laag:
"SELECT * FROM CUSTOMER WHERE customer.lastname LIKE '" + @input + "'";
DataAccess dataAccess = new DataAccess();
dataAccess.AddParameter("@input", input);
return dataAccess.GetDatasetResult(_sql, "CUSTOMER");
DataAccess laag:
public DataSet GetDatasetResult(string sql, string tableName)
{
DataSet ds = new DataSet();
IEnumerator enumerator = _parameterList.GetEnumerator();
_odbcConnection = new OdbcConnection(ConnectionString);
_odbcCommand = new OdbcCommand(sql, _odbcConnection);
if(sql == null) throw new ArgumentNullException("sql");
while (enumerator.MoveNext())
{
_odbcCommand.Parameters.Add(enumerator.Current);
}
OdbcDataAdapter da = new OdbcDataAdapter(_odbcCommand);
if (tableName == string.Empty)
{
da.Fill(ds);
}
else
{
da.Fill(ds, tableName);
}
return ds;
}
ik gebruik onderstaande functie voor het opvullen van een dataset met klantgegevens. Hierbij gebruik ik parameters om SQL injectie te voorkomen maar hij geeft een syntax error als ik bijvoorbeeld d'hondt invoer.
SQL laag:
"SELECT * FROM CUSTOMER WHERE customer.lastname LIKE '" + @input + "'";
DataAccess dataAccess = new DataAccess();
dataAccess.AddParameter("@input", input);
return dataAccess.GetDatasetResult(_sql, "CUSTOMER");
DataAccess laag:
public DataSet GetDatasetResult(string sql, string tableName)
{
DataSet ds = new DataSet();
IEnumerator enumerator = _parameterList.GetEnumerator();
_odbcConnection = new OdbcConnection(ConnectionString);
_odbcCommand = new OdbcCommand(sql, _odbcConnection);
if(sql == null) throw new ArgumentNullException("sql");
while (enumerator.MoveNext())
{
_odbcCommand.Parameters.Add(enumerator.Current);
}
OdbcDataAdapter da = new OdbcDataAdapter(_odbcCommand);
if (tableName == string.Empty)
{
da.Fill(ds);
}
else
{
da.Fill(ds, tableName);
}
return ds;
}