using System;
using System.Collections;
using System.Data;
using System.Data.SqlClient;
public partial class DBmanager
{
public DBmanager()
{
DBmanager.connectionString = System.Configuration.ConfigurationManager.AppSettings["Cnstr"].ToString();
}
static string connectionString = "";
public static string con_str()
{
return connectionString;
//return @"Initial Catalog=Uzstandart;Data Source=.; Integrated Security=true";
}
public static int? exec(SqlCommand cmd)
{
int? val = null;
using (SqlConnection conn = new SqlConnection(con_str()))
{
cmd.Connection = conn;
try
{
if (conn.State != ConnectionState.Open) conn.Open();
val = cmd.ExecuteNonQuery();
conn.Close();
return val;
}
catch
{
if (conn.State != ConnectionState.Closed) conn.Close();
// bu qachonki xatoni aniqlash qiyin bo`lganda xato ba`zada bo`lsa vaqtincha ochib qo`yiladi
//throw new Exception(exp.Message);
return null;
}
}
}
public static ArrayList getDataList(SqlCommand cmd)
{
ArrayList lst = new ArrayList();
using (SqlConnection conn = new SqlConnection(con_str()))
{
cmd.Connection = conn;
try
{
if (conn.State != ConnectionState.Open) conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
int n = dr.FieldCount, i = -1;
object[] o = new object[n];
while (++i < n)
{
o[i] = dr[i];
}
lst.Add(o);
}
conn.Close();
dr.Close();
return lst;
}
catch (Exception exp)
{
if (conn.State != ConnectionState.Closed) conn.Close();
//bu qachonki xatoni aniqlash qiyin bo`lganda xato ba`zada bo`lsa vaqtincha ochib qo`yiladi
throw new Exception(exp.Message);
//return null;
}
}
}
public static Object[] getData(SqlCommand cmd)
{
Object[] o = null;
using (SqlConnection conn = new SqlConnection(con_str()))
{
cmd.Connection = conn;
try
{
if (conn.State != ConnectionState.Open) conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
int n = dr.FieldCount, i = -1;
o = new object[n];
while (++i < n)
{
o[i] = dr[i];
}
}
conn.Close();
dr.Close();
return o;
}
catch
{
if (conn.State != ConnectionState.Closed) conn.Close();
// bu qachonki xatoni aniqlash qiyin bo`lganda xato ba`zada bo`lsa vaqtincha ochib qo`yiladi
//throw new Exception(exp.Message);
return null;
}
}
}
public static object value(SqlCommand cmd)
{
object val = null;
using (SqlConnection conn = new SqlConnection(con_str()))
{
cmd.Connection = conn;
try
{
if (conn.State != ConnectionState.Open) conn.Open();
val = cmd.ExecuteScalar();
conn.Close();
return val;
}
catch (Exception exp)
{
if (conn.State != ConnectionState.Closed) conn.Close();
//bu qachonki xatoni aniqlash qiyin bo`lganda xato ba`zada bo`lsa vaqtincha ochib qo`yiladi
throw new Exception(exp.Message);
//return null;
}
}
}
SqlConnection sqlConnection;
public void newConnection()
{
if (sqlConnection == null)
{
sqlConnection = new SqlConnection(con_str());
}
}
public void open()
{
if (sqlConnection.State != ConnectionState.Open)
{
sqlConnection.Open();
}
}
SqlTransaction transaction;
public void beginTransaction()
{
transaction = sqlConnection.BeginTransaction();
}
public SqlTransaction Transaction
{
get
{
return transaction;
}
}
public void close()
{
if (sqlConnection.State != ConnectionState.Closed)
{
sqlConnection.Close();
}
}
public void commit()
{
transaction.Commit();
}
public void rollBack()
{
transaction.Rollback();
}
public Boolean execute(SqlCommand cmd)
{
if (cmd == null) { return false; }
cmd.Connection = sqlConnection;
cmd.Transaction = transaction;
try
{
if (null != cmd.ExecuteNonQuery())
{
return true;
}
else
{
return false;
}
}
catch
{
return false;
}
}
}
Yuqoridagi C# sourceda standart coding guidelinega e'tibor berilmagan.Bundan tashqari transaction/ un alohida method qilingan...
ReplyDeleteTayyor qiilngan Helper/i iwlatish maqulro bolsa kk.
https://skydrive.live.com/redir?resid=3E147CDED298F080!105
Rahmat. lekin coding guide manda boshqacha. javaniki yaxshiroq uchun o`sha patterndan foydalanaman. keyin bu yerdagi SQLHelper yoqmadi, chunki manga mana bu maqbul tushdi:
DeleteSqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
int n = dr.FieldCount, i = -1;
object[] o = new object[n];
while (++i < n)
{
o[i] = dr[i];
}
lst.Add(o);
}
ikkinchi yoqmagan tomoni - man dataset ishlatmayman, datarow ham.
Transaction uchun alohida method qilinmagan. tepadagilari oddiy ishlaydi, transactionni ruchnoy ochib yopiladigan joyi esa sikllarda foydalanilgan.
))) ha ha javis edizu... Sorry usta!!!
ReplyDeleteda da da
Delete