Ciao a tutti
voglio scrivere delle funzioni per interrogare il db passando dei parametri. L'idea è quella di scrivere una funzione generica che accede al db e restituisce il risultato e alla quale passo la query parametrica.
Ho fatto così:
SqlDataAdapter
private static DataTable GetDataTable(string sql, SqlCommand cmd)
{
DataTable data = new DataTable();
try
{
using (SqlConnection cn = new SqlConnection(CONNECTION_STRING))
{
cn.Open();
using (SqlDataAdapter adapter = new SqlDataAdapter())
{
cmd = new SqlCommand(sql, cn);
adapter.SelectCommand = cmd;
try
{
adapter.Fill(data);
cn.Close();
}
catch (Exception ex)
{
cn.Close();
cn.Dispose();
}
} //return data;
}
}
catch (Exception ex)
{
}
return data;
}
public static DataRow User(Guid UserId)
{
DataRow utente = null;
DataTable T = null;
string sql = "SELECT up.* " +
"FROM aspnet_UsersProfile up " +
"WHERE up.UserId=@UserId";
SqlCommand cmd = new SqlCommand();
cmd.Parameters.AddWithValue("@UserId", UserId);
T = GetDataTable(sql, cmd);
if (T != null && T.Rows.Count > 0)
{
utente = T.Rows[0];
}
return utente;
}
In GetDataTable ricevo questo errore:
System.Data.SqlClient.SqlException (0x80131904): Dichiarare la variabile scalare "@UserId".
Se voelssi fare la stessa cosa per INSERT e UPDATE, come dovrei fare?
Grazie mille