Jag vet att titlen inte är den bästa, men jag hittar ingenting bättre, jag vet
inte riktigt var mina problem ligger.
För att utestuta min connectionstring (jag har access databas).
Jag sparar min connectionstring i webb.config
DBConn = new OleDbConnection(ConfigurationManager.ConnectionStrings
["ConnectionString"].ConnectionString);
Denna fungerar.
Därefter så försöker jag att använda detta (har gått många gånger förr)
//först min sql sedan
OleDbCommand cmd = new OleDbCommand(sql, DBConn);
OleDbDataAdapter da = new OleDbDataAdapter();
da.SelectCommand = cmd;
DBConn.Open();
DataSet ds = new DataSet();
da.Fill(ds, "Nyheter"); <--- Det har inte angetts något värde för en eller
flera nödvändiga parametrar.
Är det någon som ser något fel??? §jr
[REDIGERAT]
Efter mycket letande och sökande kunde jag hitta felet. Det var en variabel
till min SQL.
Ursäkta detta inlägg.
Tips! Använd datatables istället för datasets, tror inte du behöver något annat... datasets är rätt tunga objekt om jag förstått det rätt, blir bara en massa onödig overhead.
Naturligtvis men jag fick för mig att det var mera inveklat an att jöra som jag har gjort tidigare.
Om jag förstod rätt så skall man göra ett DataSet under alla förutsättningar, var ligger
då vinsten?
Gör en datatable bara, det räcker gott, drar mindre kräm, och någon adatapter behövs inte.
Exempel ett projekt jag bygger nu
public DataTable AllSizes()
{
DataTable dt = new DataTable();
sql = "SELECT Sizes FROM Products WHERE Sizes <> '' AND Sizes is not null";
cmd = new OleDbCommand(sql, objConn);
objConn.Open();
dt.Load(cmd.ExecuteReader());
objConn.Close();
return dt;
}
Vinsten är prestanda! Ett dataset består enkelt utryckt av en mängd olika datatables så när du ska göra som du vil göra och bara binda resultatet till något så är det VÄLDIGT onödigt slöseri med resurser att använda ett dataset.
Istället rekommenderas datatable (då kan man stänga anslutningen direkt) eller en datareader (då måste man komma ihåg att stänga anslutningen när man är färdig med readern).
OleDbCommand cmd = new OleDbCommand(sql, DBConn);
//Open connection create a DataTable and fill it
DBConn.Open();
DataTable dt = new DataTable("Results");
dt.Load(cmd.ExecuteReader());
//Clean up objects
dbCon.Close();
dbCmd.Dispose();
Istället för
OleDbCommand cmd = new OleDbCommand(sql, DBConn);
OleDbDataAdapter da = new OleDbDataAdapter();
da.SelectCommand = cmd;
DBConn.Open();
DataSet ds = new DataSet();
da.Fill(ds, "Nyheter");