Posto sam pisao neke tutorijale sa konekcijama prema bazi (vise sam dosadio i samom sebi ) primetio sam da one (klase) imaju neke greskice, popravio sam te greskice i sada klasa sadrzi tri konekcije Microsoft SQL, MySQL i Access.
U principu, sve je to jedno te isto, samo sto je drugaciji ConnectionString (koristan link: www.connectionstrings.com).
I evo cele ispravljene klase.
using System;
using System.Data.SqlClient;
using System.Data.Odbc;
using System.Web;
using System.Collections;
using System.ComponentModel;
using System.Data;
namespace XXX.Connections
{
#region " Microsoft SQL database connection v 2000/2005; Namespace - MSSQL "
namespace MSSQL
{
/// <summary>
/// Functions for connecting to MSSQL database.
/// </summary>
public class MSSqlConn
{
public SqlConnection sConn = new SqlConnection();
public SqlCommand cmd;
public SqlDataReader dr;
string sKon;
~MSSqlConn()
{
CloseConn();
}
public void OpenConn(string sql)
{
try
{
sKon = "www.connectionstrings.com";
}
catch (Exception exp)
{
// Kod za obradu greske
}
SqlConnection sConn = new SqlConnection(sKon);
try
{
sConn.Open();
cmd = new SqlCommand(sql,sConn);
dr = cmd.ExecuteReader();
}
catch(Exception e)
{
// Kod za obradu greske
}
}
public void CloseConn()
{
sConn.Close();
sConn.Dispose();
}
}
}
#endregion
#region " MySql Database connection; Namespace - MYSQL "
namespace MYSQL
{
public class MySqlConn
{
public OdbcConnection con = new OdbcConnection();
public OdbcCommand cmd;
public OdbcDataReader dr;
string myConn;
~MySqlConn()
{
CloseConn();
}
public void OpenConn(string sql)
{
try
{
myConn = "www.connectionstrings.com";
}
catch
{
// Kod za obradu greske
}
OdbcConnection con = new OdbcConnection(myConn);
con.Open();
cmd = new OdbcCommand(sql, con);
dr = cmd.ExecuteReader();
}
public void CloseConn()
{
con.Close();
con.Dispose();
}
}
}
#endregion
#region " Microsoft Access database connecition; Namespace - Access "
namespace Access
{
public class AccessConn
{
public OdbcConnection con = new OdbcConnection();
public OdbcCommand cmd;
public OdbcDataReader dr;
string aConn;
~AccessConn()
{
CloseConn();
}
public void OpenConn(string sql)
{
try
{
aConn = "www.connectionstrings.com";
}
catch
{
// Kod za obradu greske
}
OdbcConnection con = new OdbcConnection(aConn);
con.Open();
cmd = new OdbcCommand(sql, con);
dr = cmd.ExecuteReader();
}
public void CloseConn()
{
con.Close();
con.Dispose();
}
}
}
#endregion
}
Koriscenje:
Ako se izvrsavaju upiti koji ne vracaju vrednosti.
using XXX.Connections.MSSQL;
...
MSSqlConn s = new MSSqlConn();
s.OpenConn("DELETE * FROM MyCityUsersTable WHERE Username <> 'snoop';");
s.Close();
...
Ako se izvrsavaju upiti koji vracaju vrednosti.
using XXX.Connection.Access;
...
string tmp;
AccessConn s = new AccessConn();
s.OpenConn("SELECT * FROM MyCityUsersTable;");
s.dr.Read(); // Ovo je obavezno ako se zele procitati podaci iz baze
tmp = s.dr["Username"];
s.Close();
...
To je sve. Veoma lako za manipulaciju.
Sledeci put ce biti nesto drugacije, da ne budem dosadan sa ovim konekcijama (zagusicu protok )
Ako ima pitajna... Feel free to ask.
Dopuna: 27 Okt 2005 14:20
Note: Try - Catch block na mestu gde se setuje promenljiva je nepotreban.
Ja sam ga stavio jer sam koristio funkciju za citanje iz web.config fajla pa da moze da mi handluje gresku/e u slucaju ne postojanja odredjenog parametra.
Nije greska ni sa njim ni bez njega, samo je nepotreban.
Previd, sta cu .
|