webForumDet fria alternativet

Metod som inte funkar

.NET

4 svar · 366 visningar · startad av LilleSkutt

Medlem sedan feb. 2001265 inlägg
Frågan#1

Nu när jag har fått igång frameworken som kommer jag nog att ställa ett antal frågor här i forumet, synd för er :e ;)

Jag börjar redan nu:

Jag har en .cs-fil med ett namespace och en klass. I klassen har jag en metod som ska returnera ett objekt av OleDbDataReader, vilket dock inte funkar.

public class enClass {
	private OleDbConnection connection;
	private string dataBase;

	public enClass(string DB) {
		this.dataBase = DB;
		this.connection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + DB);
	}

	public OleDbDataReader getReader(string SQL) {
		get {
			OleDbCommand command = new OleDbCommand(SQL, this.connection);
			OleDbDataReader reader;

			try {
				this.connection.Open();
				reader = command.ExecuteReader();

				return reader;
			}
			catch(Exception e) {
				Console.WriteLine("Fel!\n" + e.Message);
			}
			finally {
				this.connection.Close();
			}
		}
	}
}

Felmeddelandet jag får är att ett semikolon förväntas. På raden:
get {

Där ska det vällan inte vara något semikolon? :q

------------------
---
/* LilleSkutt */

[Redigerat av LilleSkutt den 15 sep 2001]

Medlem sedan apr. 20007 588 inlägg
#2

Humm, vad gör get där öht? Ser märkligt ut, nu är jag iofs ingen C#-kille så det kanske skall vara så men om man låtsas att det är Java :) så skall det se ut så här:

public class enClass {
	private OleDbConnection connection;
	private string dataBase;

	public enClass(string DB) {
		this.dataBase = DB;
		this.connection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + DB);
	}

	public OleDbDataReader getReader(string SQL) {
		
			OleDbCommand command = new OleDbCommand(SQL, this.connection);
			OleDbDataReader reader;

			try {
				this.connection.Open();
				reader = command.ExecuteReader();

				return reader;
			}
			catch(Exception e) {
				Console.WriteLine("Fel!\n" + e.Message);
			}
			finally {
				this.connection.Close();
			}
		}
	
}

------------------
"To iterate is human, to recurse, divine" - L. Peter Deutch

Medlem sedan feb. 2001265 inlägg
#3

Japp, så kunde man ju göra :D

Men det dök upp en nytt problem... När jag returnerar ett objekt av typen OleDbDataReader kan jag inte loopa igenom det, jag får exception på att det inte är öppet. Det går att loopa igenom det direkt i min komponent, precis efter att det har skapats men inte när man returnerar det.

Hur öppnar man en OleDbDataReader? :q

------------------
---
/* LilleSkutt */

Medlem sedan feb. 2001265 inlägg
#4

Jag märkte nu att man inte KAN öppna en DataReader! Jobbigt...

Någon som har något förslag på hur man kan komma runt det?

------------------
---
/* LilleSkutt */

Medlem sedan dec. 2000399 inlägg
#5

Hej!

Du kan prova med att ändra returtypen till DataView. Kolla här.Koden är för Beta 1 men du kanske kan få lite tips...

------------------
mvh André,
http://www.sigmafarg.se

258 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)