NasimBamdad
چهارشنبه 04 اردیبهشت 1392, 12:41 عصر
سلام و خسته نباشید .
من یک کلاس نوشتم برای اتصال به دیتابیس و انجام عملیات های Delete , Insert , Update , و هم چنین Fill کردن GridView
using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Windows.Forms;
namespace Matab
{
class MyDB
{
public SqlConnection cnn;
public SqlCommand cmd;
public SqlDataAdapter da;
public DataSet ds;
public void connect()
{
try
{
cnn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"]);
cmd = new SqlCommand();
cmd.Connection = cnn;
cnn.Open();
}
catch
{
MessageBox.Show("Error : 3001 " + "خطا در اتصال به بانک اطلاعاتی - با مدیر تماس بگیرید");
}
}
public void Disconnect()
{
cnn.Close();
}
public void Fill(string sql)
{
try
{
da = new SqlDataAdapter(cmd);
ds = new DataSet();
cmd.CommandText = sql;
cmd.Parameters.Clear();
da.Fill(ds);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
public void Crud(string sql)
{
cmd.CommandText = sql;
cmd.Parameters.Clear();
}
public void exc()
{
cmd.ExecuteNonQuery();
}
}
}
بعد جایی که می خوام مثلا INSERT کنم از این استفاده می کنم
MyDB DB = new MyDB();
DB.connect();
DB.Crud("INSERT INTO patients (fname) VALUES (@fname)");
DB.cmd.Parameters.AddWithValue("@fname", txtProNet1.Text);
DB.exc();
DB.disconnect();
حالا به نظر شما :
1- کلاسی که تعریف کردم مشکلی داره ؟ بهینه هست ؟ درسته یا کشکیه !؟
2- کاری که می خوام انجام بدم این هست که اگر فراید وصل شدن به دیتابیس که از طریق متد Connect انجام میشه ، با مشکل رو به رو شد ، دیگه نره سراغ متد های بعدی که برای INSERT کردن و سایر کار های تعریف شدند .
باید چه کار کرد که فهمید آیا Connect انجام شده یا نه ؟! اگه انجام نشده ( وصل نشده ) دیگه یک Break بده و پیغامی که براش تعریف کردم و دیگه کار های بعدی رو انجام نده
ممنونم
من یک کلاس نوشتم برای اتصال به دیتابیس و انجام عملیات های Delete , Insert , Update , و هم چنین Fill کردن GridView
using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Windows.Forms;
namespace Matab
{
class MyDB
{
public SqlConnection cnn;
public SqlCommand cmd;
public SqlDataAdapter da;
public DataSet ds;
public void connect()
{
try
{
cnn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"]);
cmd = new SqlCommand();
cmd.Connection = cnn;
cnn.Open();
}
catch
{
MessageBox.Show("Error : 3001 " + "خطا در اتصال به بانک اطلاعاتی - با مدیر تماس بگیرید");
}
}
public void Disconnect()
{
cnn.Close();
}
public void Fill(string sql)
{
try
{
da = new SqlDataAdapter(cmd);
ds = new DataSet();
cmd.CommandText = sql;
cmd.Parameters.Clear();
da.Fill(ds);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
public void Crud(string sql)
{
cmd.CommandText = sql;
cmd.Parameters.Clear();
}
public void exc()
{
cmd.ExecuteNonQuery();
}
}
}
بعد جایی که می خوام مثلا INSERT کنم از این استفاده می کنم
MyDB DB = new MyDB();
DB.connect();
DB.Crud("INSERT INTO patients (fname) VALUES (@fname)");
DB.cmd.Parameters.AddWithValue("@fname", txtProNet1.Text);
DB.exc();
DB.disconnect();
حالا به نظر شما :
1- کلاسی که تعریف کردم مشکلی داره ؟ بهینه هست ؟ درسته یا کشکیه !؟
2- کاری که می خوام انجام بدم این هست که اگر فراید وصل شدن به دیتابیس که از طریق متد Connect انجام میشه ، با مشکل رو به رو شد ، دیگه نره سراغ متد های بعدی که برای INSERT کردن و سایر کار های تعریف شدند .
باید چه کار کرد که فهمید آیا Connect انجام شده یا نه ؟! اگه انجام نشده ( وصل نشده ) دیگه یک Break بده و پیغامی که براش تعریف کردم و دیگه کار های بعدی رو انجام نده
ممنونم