PDA

View Full Version : سوال: باز نویسی یک کلاس بر اساس sql server 2008



HOSSEINGHOLI
شنبه 22 اسفند 1388, 13:28 عصر
من یک کلاس نوشتم که بانک ان بر اساس access بوده
حال اگه بخوام کلاس من بر اساس sql server 2008 باشه باید چیکار کنم؟
مثلا معادل connection string & dataoledata adapter & ... chiye?
برای اجرای query باید چیکار کنم در sql server 2008
نمونه کلاس من اینه

using System;
using System.Data.OleDb;
using System.Data;
using System.Text;

namespace Library_Project
{
class bookDA
{
private OleDbConnection cnn;
//change connection string as per the
//folder you unzip the files
private const string CnnStr =
"Provider=Microsoft.Jet.OLEDB.4.0;Data " +
"Source= D:\\Data\\Library.mdb;";

//local variables
private String strTable="";
private String strFields="";
private String strValues="";
private String insertStr="";

//this needs to be changed based on Books
//table fields' Name of the database!
private const String thisTable = "tblbooks";
private const String book_code = "codebook";
private const String book_name = "bookname";
private const String book_nasher = "nasher";
private const String book_motarjem = "motarjem";
private const String book_shabok = "shabok";
private const String book_mozo = "mozo";


public bookDA()
{

}

public bookDA(bookBL book)

{
// A reference of the business object class
}

//standard dataset function that adds a new customer

public void Add(bookBL book)
{

String str = BuildAddString(book);

OpenCnn();

//Open command option - cnn parameter is imporant
OleDbCommand cmd = new OleDbCommand(str,cnn);


//execute connection
cmd.ExecuteNonQuery();

// close connection
CloseCnn();

}

//standard dataset function that updates
//details of a customer based on ID
public void Update(bookBL book)
{
OpenCnn();

String selectStr = "UPDATE " + thisTable +
" set " + book_name + " = '" + book.Bookname + "'" +
", " + book_nasher + " = '" + book.Nasher + "'" +
", " + book_motarjem + " = '" + book.Motarjem + "'" +
", " + book_shabok + " = '" + book.Shabok + "'" +
", " + book_mozo + " = '" + book.Mozo + "'" +
" where book_code = '" + book.Bookcode + "'";

OleDbCommand cmd = new OleDbCommand(selectStr,cnn);

cmd.ExecuteNonQuery();

CloseCnn();
}

//standard dataset function that finds and
//return the detail of a customer in a dataset
public DataSet Find(String argStr)
{
DataSet ds=null;

try
{
OpenCnn();

String selectStr = "select * from " + thisTable +
" where code_book = '" + argStr + "'";
OleDbDataAdapter da = new OleDbDataAdapter(selectStr,cnn);
ds = new DataSet();
da.Fill(ds,thisTable);

CloseCnn();
}

catch(Exception e)
{
String Str = e.Message;
}

return ds;
}
//standard dataset function that finds and
//return the detail of a customer in a dataset
//----------------------------
public DataSet View()
{
DataSet ds = null;

try
{
OpenCnn();

String selectStr = "select * from " + thisTable + "'";

OleDbDataAdapter da = new OleDbDataAdapter(selectStr, cnn);

ds = new DataSet();

da.Fill(ds, thisTable);

CloseCnn();
}
catch (Exception e)
{
String Str = e.Message;
}

return ds;
}
//----------------------------
private void OpenCnn()
{
// initialise connection
String cnnStr = CnnStr;
cnn = new OleDbConnection(cnnStr);
// open connection
cnn.Open();
}

private void CloseCnn()
{
// 5- step five
cnn.Close();
}

// just a supporting function that builds
// and return the insert string for dataset.
private String BuildAddString(bookBL book)
{
// these are the constants as
// set in the top of this module.
strTable="Insert into " + thisTable;
strFields = " (" + book_code +
"," + book_name +
"," + book_nasher +
"," + book_motarjem +
"," + book_shabok +
"," + book_mozo + ")";

//these are the attributes of the
//customer business object.
strValues = " Values ( '" + book.Bookcode +
"' , '" + book.Bookname +
"' , '" + book.Nasher +
"' , '" + book.Motarjem +
"' , '" + book.Shabok +
"' , '" + book.Mozo + "' )";

insertStr = strTable + strFields + strValues;

return insertStr;

}


}
}

AliRezaPro
شنبه 22 اسفند 1388, 13:42 عصر
هر جا oledb دیدی به جاش بزار sql
مثلا
OleDbConnection
sqlConnection
یا
OleDbCommand
sqlCommand
یا
OleDbDataAdapter
sqlDataAdapter
کانکشن استرینگ هم میتونی تو سایت کانکشن استرینگ پیدا کنی

HOSSEINGHOLI
شنبه 22 اسفند 1388, 20:35 عصر
من خیلی connection string دیدم نمیدونم کومش را باید انتخاب کنم و منظور از پارامتر هاش چیه
اگر فرض کنیم دیتابیس در پوشه data در application هست conection string چی میشه؟
در ضمن من وقتی میخام فایل sql رو کپی کنم دستور error میده باید چیکار کنم؟

AliRezaPro
شنبه 22 اسفند 1388, 21:28 عصر
نوع کانکشن استرینگتون بسته به محیطی داره که می خواهید از دیتابیس استفاده کنید.
مشکلتون با این سایت حل میشه

http://www.connectionstrings.com/

HOSSEINGHOLI
یک شنبه 23 اسفند 1388, 00:05 صبح
دوست عزیز من چیزی نمیفهمم
خیلی مبتدی هستم
تو برای sql از چه cnstr استفاده میکنی؟

mehdi.mousavi
یک شنبه 23 اسفند 1388, 00:32 صبح
دوست عزیز من چیزی نمیفهمم خیلی مبتدی هستم
تو برای sql از چه cnstr استفاده میکنی؟

سلام.
شما برای رهایی از این وضعیت، دو راه پیش رو دارید:


یا یک کتابی بخرید بخونید و با حداقل مفاهیم آشنا بشید.
یا از کامپایلر و برنامه نویسی دوری کنید تا کسی صدمه نبینه.

موفق باشید.

پاورقی: فرض کنید Connection String رو هم بهتون گفتیم، بعدش میخواهید بپرسید چطوری logon user تو SQL Server تعریف کنم؟ بعدش بپرسید، این پیام error چیه و چرا رکورد تو بانک ذخیره نمیشه. بعدش بپرسید پس چرا رکوردها رو نمیتونم از بانک دریافت کنم و ... شما بهتره یکی از اون دو روش فوق رو پیش بگیرید. هر کدوم رو انتخاب کنید، برنده هستید. هم خودتون، هم مشتریتون.

HOSSEINGHOLI
یک شنبه 23 اسفند 1388, 01:00 صبح
ممنون از راهنماییتون
واقعا ادم از زکات علم شما لذت میبره
خدا پشت و پناهتون باشه
موفق باشی برنامه نویس حرفه ای
ایشا الله تو مایکروسافت استخدام بشی و به آرزوهات برسی