webForumDet fria alternativet

Databasproblem

.NETur .NET

12 svar · 751 visningar · startad av saw

Medlem sedan mars 20011 880 inlägg
Frågan#1

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

<connectionStrings>
      <add name="ConnectionString1" 
connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source= 
path till\databasen\App_Data\Klass.mdb;Persist Security Info=False;"/>

      <add name="ConnectionString" 
connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source= path 
till\databasen\App_Data\Mansjouren.mdb;Persist Security Info=False;"/>
  </connectionStrings>

..och använder den så här:

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.

Medlem sedan sep. 2005673 inlägg
#2

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.

Medlem sedan jan. 20022 440 inlägg
Medlem sedan mars 20011 880 inlägg
#4

Jag är nog lite "hum i duvet" men jag kan inte hitta något bra exempel så att jag kan
förstå hur det skall gå till.

Medlem sedan jan. 20022 440 inlägg
#5

saw skrev:

Jag är nog lite "hum i duvet" men jag kan inte hitta något bra exempel så att jag kan
förstå hur det skall gå till.

errrmmm kollade du ens på länken jag postade?

Medlem sedan mars 20011 880 inlägg
#6

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?

Medlem sedan feb. 2005280 inlägg
#7

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;
		}
Medlem sedan jan. 20022 440 inlägg
#8

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");

Det är väl inte så svårt? ;)

Medlem sedan mars 20011 880 inlägg
#9

Nej det ser ju enkelt ut.
Får jag avsluta detta med en fråga, nar jag har

dt.Load(cmd.ExecuteReader());

hur tar jag ut resultatet?
DVS om jag vill ha ut ett id, rubrik etc..

Medlem sedan feb. 2005280 inlägg
#10

tex:

if (dt.Rows.Count > 0)
{
    DataRow row = dt.Rows[0];
    Rubriken = row["id"].ToString(); 
}
Medlem sedan mars 20011 880 inlägg
#11

Då tackar jag för detta och önska alla en riktig god jul.

Medlem sedan mars 20011 880 inlägg
#12

Jag vill bara kommentera att detta fungerade suveränt, eller som en berömd kung
sade " detta skall hädanefter blifa min musik".

Medlem sedan jan. 20022 440 inlägg
#13

Skönt att kunna hjälpa till :)

132 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)