webForumDet fria alternativet

ADODB.Recordset

1 svar · 237 visningar · startad av kristoffer

kristofferMedlem sedan juni 20001 257 inlägg
#1

Jag vill använda JMail-komponenten i .net och har lyckats hela vägen fram till att jag skall ange ett Recordset som parameter till en metod.

Därför hittade jag den här artikeln som beskriver hur man använder ADO Recordset i ADO.NET. Men den är i VB och jag får den inte att fungera i c#. Jag vill alltså göra en metod som returnerar ett Recordset. Jag får felet

System.Runtime.InteropServices.COMException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

på den fetstilta raden nedan trots att jag vet att databasanslutningen har fungerat innan. (Jag har tagit bort connectionsträngen från koden nedan)

private ADODB.RecordsetClass GetDataTable()
		{
			string strConn = "bla bla bla";
			string strSQL = "SELECT strEmail FROM tblSubscriber_sub";
			
			ADODB.ConnectionClass conn = new ConnectionClass();
			int connMode = (int) ConnectModeEnum.adModeUnknown;
			conn.CursorLocation = CursorLocationEnum.adUseServer;
			[b]conn.Open(strConn, "", "", connMode);[/b]
			Object recAffected = new Object();
			int cmdType = (int) ADODB.CommandTypeEnum.adCmdText;
			ADODB.RecordsetClass rs = new ADODB.RecordsetClass();
			rs = (RecordsetClass) conn.Execute(strSQL, out recAffected, cmdType);
			return rs;
		}
kristofferMedlem sedan juni 20001 257 inlägg
#2

Postar lösningen själv:

Hade glömt att connection-strängen skulle vara av gammal adodb-typ:

string strConn = "DRIVER={SQL Server};SERVER=myServer;DATABASE=myDatabase";

Dessutom var argumenten till conn.Open fel. Skulle tvunget se ut så här:

conn.Open(strConn, "myUserID", "myPassword", connMode);
128 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)