Hej Du har ingen felhantering i GetSiteNews() så om det skiter sig stängs aldrig databasen. Kan vara det som är problemet. Lägg in try,catch och ett finally där du alltid stänger db i finally. Du kan ju även se villket meddelande du får i catchen (oledbexception) så får du mer vägledning om vad det kan vara för fel. Får du ett fel så kan du returnera null och på så sätt slippa "fel" i applikationen. Det här måste va bland det skummaste fel jag nånsin stött på...Lade till try,catch,finally i GetSiteNews() (se kod nedan)...men jag fick fortfarande samma felmeddelande (Åtgärden avbröts)OleDbException: Åtgärden avbröts
Fick ett sånt där roligt fel på min ASP.NET applikation. Första sidan laddar nyheter från en Access databas med OLEDB. Det funkade fint både lokalt och på mitt webbhotell. Men helt plötsligt slutade det funka lokalt...fick följande felmeddelande:
System.Data.OleDb.OleDbException: Åtgärden avbröts at System.Data.OleDb.OleDbConnection.ProcessResults(Int32 hr) at System.Data.OleDb.OleDbConnection.InitializeProvider() at System.Data.OleDb.OleDbConnection.Open() at RaxxaDBController.DBController.GetSiteNews()
Det blir alltså fel när Open() anropas på Connection-objektet. Sökte här på Pellesoft och hittade nåt om att man kunde lösa detta problem med att köra en Dispose() på connection-objektet efter att man anropar Close()...testade detta men det hjälpte inte.
Nån som har någon annan lösning?
Lite kod (även om det inte kan va fel eftersom det fortfarande funkar på webbhotellet):
default.aspx.cs
private void Page_Load(object sender, System.EventArgs e)
{
//Get reference to a DBController object
db = DBController.GetDBController();
// Put user code to initialize the page here
if(!IsPostBack)
{
DataTable DTnews;
try
{
DTnews = db.GetSiteNews();
DataList1.DataSource = DTnews;
DataList1.DataBind();
}
catch(Exception exc)
{
Label1.Text = exc.ToString();
}
}
}
DBController.cs
public DataTable GetSiteNews()
{
//**********************************************************
// Fetch all records in table 'News'
//**********************************************************
string strSQL= "SELECT * FROM News ORDER BY News_date DESC";
DataTable DTnews = new DataTable("News");
adoConn.Open();
OleDbCommand adoCmd = new OleDbCommand(strSQL, adoConn);
OleDbDataAdapter adoDA = new OleDbDataAdapter(adoCmd);
adoDA.Fill(DTnews);
adoConn.Close();
adoConn.Dispose();
return DTnews;
}
Sv: OleDbException: Åtgärden avbröts
Sv:OleDbException: Åtgärden avbröts
Laborerade fram o tillbaka med koden...rensade webbcache:n m.m. Plötsligt fick jag ett annat felmeddelande:
System.InvalidOperationException: The ConnectionString property has not been initialized. at System.Data.OleDb.OleDbConnection.Open() o.s.v...
Men ConnectionString-egenskapen ÄR initialiserad...för säkerhets skull lade jag även till det i GetSiteNews() åxå, men det funkar i alla fall inte
Därefter har jag laborerat mer med koden så nu får jag bara "OleDbException: Åtgärden avbröts" hela tiden igen...det spelar ingen roll VAD jag gör...provade t.o.m. att flytta bort databas-filen från den sökväg jag angett i min connectionstring för att få något annat felmeddelande...men icke...Åtgärden avbröts
Hjälp mig någon!
Koden:
*Borttagen*
EDIT: (2006-03-13)
Mycket märkligt problem...Löste det genom att helt enkelt starta upp ett nytt projekt i visual studio och lägga in samma källkodsfiler...funkade hur bra som helst!