14. januar 2005 - 13:10
Der er
14 kommentarer og 2 løsninger
Omskrive facade klassen fra access til ms sql.
Hej, jeg skal til at skrive min facade klasse om. Pt kører jeg med access, og den skal omskrives så det kører med ms sql. Her er et typisk eksempel fra en af funktionerne i facadeklassen: public DataSet Test(string strPath, string strTest) { OleDbConnection connSystem = new OleDbConnection (strPath); OleDbCommand objCmd = new OleDbCommand("SELECT bla bla = @tt", connSystem); OleDbParameter objParam; objParam = objCmd.Parameters.Add("@tt", OleDbType.Char); objParam.Direction = ParameterDirection.Input; objParam.Value = strTest; OleDbDataAdapter adapter = new OleDbDataAdapter(objCmd); DataSet ds = new DataSet(); adapter.Fill(ds); return ds; } Som det fremgår tager funktionen to argumenter. Det ene af dem er stien til databasen, da jeg har flere databaser. Hvordan ville I skrive dette om så det kommer til at virke med ms sql? På forhånd mange tak.
Annonceindlæg fra Computerworld
14. januar 2005 - 13:13
#1
1) Erstat "OleDb" med "Sql". 2) Kald den med første argument som en valid SQLServer connection string.
14. januar 2005 - 13:52
#2
Sådan her og så kald med en SQL connection string. f.eks.: string ConnectionString = "Provider=SQLOLEDB;Data Source=server;Initial Catalog=database;uid=user;pwd=password"; public DataSet Test(string strPath, string strTest) { OleDbConnection connSystem = new OleDbConnection (strPath); OleDbCommand objCmd = new OleDbCommand("SELECT * FROM tabel WHERE kolonne = ?", connSystem); OleDbParameter objParam; objParam = objCmd.Parameters.Add("kolonne", OleDbType.Char); objParam.Direction = ParameterDirection.Input; objParam.Value = strTest; OleDbDataAdapter adapter = new OleDbDataAdapter(objCmd); DataSet ds = new DataSet(); adapter.Fill(ds); return ds; }
16. januar 2005 - 21:53
#3
askhoej >> Er det meningen at du anvender oledb? Troede det var meningen man skulle gøre som arne_v siger.
16. januar 2005 - 22:00
#4
jeps det er med vilje - man kan bruge både OleDb og SqlClient
16. januar 2005 - 22:06
#5
og i øvrigt ODBC hvis man lyster det. Performance mæssigt så er såvidt jeg husker OleDb og SqlClient nogenlunde lige hurtige, mens ODBC er langsomst.
17. januar 2005 - 00:10
#7
Normalt vil man anbefale SqlClient fremfor OleDb til SQLServer fordi SqlClient er 100% .NET (snakker TDS over netværk med SQLserveren) mens OleDb bruger native/unmaneged kode via COM.
17. januar 2005 - 00:10
#8
arne_v >> hvad mener du med "2) Kald den med første argument som en valid SQLServer connection string."
17. januar 2005 - 00:13
#9
Du retter OleDbConnection connSystem = new OleDbConnection (strPath); til SqlConnection connSystem = new SqlConnection (strPath); men derudover skal strPath (først argument til Test metoden) jo også ændres fra en OLE DB conection string til en SQLserver connection string.
17. januar 2005 - 00:19
#10
arne_v >> Det er kanon du kan svarer så hurtigt - kigger lige på det :-)
17. januar 2005 - 01:09
#11
giv et svar med arne_
17. januar 2005 - 07:28
#12
ok
25. februar 2005 - 22:23
#13
...
25. februar 2005 - 22:50
#14
anede ikke jeg havde så mange åbne :o)
25. februar 2005 - 22:52
#15
Prøv at klikke på konto og "Spørgsmål oprettet af dig" og se om der er nogen uden blå flag ...
25. februar 2005 - 23:19
#16
ok tak for tip :o)
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.