PDA

View Full Version : وصل کردن دیتا گرید به دیتابیس با استفاده از کد نویسی (تازه کار)



SeyedMoosavi
شنبه 15 دی 1386, 23:46 عصر
سلام
من می خوام که یک Data Grid رو به Data Base وصل کنم البته با استفاده از دستورات و کد نویسی
با تشکر از دوستان

Amir Oveisi
یک شنبه 16 دی 1386, 00:29 صبح
یه مثال ساده از کتاب اقای هاشمیان :


//Using Data and SqlClient namespaces...
using System.Data;
using System.Data.SqlClient;

SqlConnection objConnection = new SqlConnection(
"server=localhost;database=pubs;" +
"user id=sa;password=");
SqlDataAdapter objDataAdapter = new SqlDataAdapter();
DataSet objDataSet = new DataSet();

private void Form1_Load(object sender, EventArgs e)
{
// Set the SelectCommand properties...
objDataAdapter.SelectCommand = new SqlCommand();
objDataAdapter.SelectCommand.Connection =
objConnection;
objDataAdapter.SelectCommand.CommandText =
"SELECT au_lname, au_fname, title, price " +
"FROM authors " +
"JOIN titleauthor ON authors.au_id = " +
"titleauthor.au_id " +
"JOIN titles ON titleauthor.title_id = " +
"titles.title_id " +
"ORDER BY au_lname, au_fname";
objDataAdapter.SelectCommand.CommandType =
CommandType.Text;
// Open the database connection...
objConnection.Open();
// Fill the DataSet object with data...
objDataAdapter.Fill(objDataSet, "authors");
// Close the database connection...
objConnection.Close();
٦٣٩
// Set the DataGridView properties
// to bind it to our data...
grdAuthorTitles.AutoGenerateColumns = true;
grdAuthorTitles.DataSource = objDataSet;
grdAuthorTitles.DataMember = "authors";
// Clean up
objDataAdapter = null;
objConnection = null;
}

توسعه نویس
یک شنبه 16 دی 1386, 00:49 صبح
اول یک تابع بصورت زیر می سازی تا برای برنامه یک دیتاست پر شده درست کنه.

public static DataSet GetDataSet(string sql_Query)
{
using (SqlConnection cnConnect = new SqlConnection("Your Connection String"))
{
SqlDataAdapter daResive = new SqlDataAdapter(sql_Query, cnConnect);
DataSet dsFill = new DataSet();
daResive.Fill(dsFill);
return dsFill;
}
}


به جای متن "Your Connection String" باید کانکشن استرینگ دیتابیس وارد بشه.
حالا با نسبت دادن تابع به DataSource متعلق به دیتا گرید (البته با آرگومان دستور sql) کار رو ادامه میدی.

private void formFill()
{
MyDataTable.DataSource = GetDataSet("SELECT * FROM Customers");
MyDataTable.DataMember = "table";
}

البته دیتاست پرشده حامل یک دیتاتیبل به نام table هست که با تنظیم DataMember با اون نام دیتاگرید ما به محض اجرا شدن کد، پر میشه.


در صورتی که از Stored Procedures استفاده می کنید مدل زیر رو به کار ببرید.


public static DataSet GetDataSet(string Name, SqlParameter[] Parameter)
{
using (SqlConnection cnConnect = new SqlConnection("Your Connection string"))
{
SqlCommand IcmdRun = new SqlCommand(Name, cnConnect);
IcmdRun.CommandType = CommandType.StoredProcedure;
IcmdRun.Parameters.AddRange(Parameter);
SqlDataAdapter daResive = new SqlDataAdapter(IcmdRun);
DataSet dsFill = new DataSet();
daResive.Fill(dsFill);
return dsFill;
}
}

// use GetDataSet Method with Parameters
private void formFill()
{
SqlParameter[] param = new SqlParameter[5];
param[0] = new SqlParameter("@uname", uName);
param[1] = new SqlParameter("@fname", fName);
param[2] = new SqlParameter("@lname", lName);
param[3] = new SqlParameter("@phone", phone);
MyDataTable.DataSource = GetDataSet("Stored Procedure Name", param);
MyDataTable.DataMember = "table";
}

مهدی رحیم زاده
یک شنبه 16 دی 1386, 07:19 صبح
اینجا چند تا نمونه برنامه هست که میتونی ازشون استفاده کنی :
http://barnamenevis.org/forum/showthread.php?p=348253#post348253
http://barnamenevis.org/forum/showthread.php?p=386673#post386673
http://barnamenevis.org/forum/showthread.php?p=397830#post397830
http://barnamenevis.org/forum/showthread.php?p=425640#post425640

mamali_programer
یک شنبه 16 دی 1386, 12:36 عصر
دوست عزیز
باید از پراپرتی Datasource و Datamember استفاده کنید که درون دیتا گرید است
من میتونم یک نمونه براتون بفرستم
اگر خواستید به من ایمیل بزنید

اَرژنگ
یک شنبه 16 دی 1386, 13:36 عصر
و اگر روزی خواستید حرفه‌ایه کار کنید استفاده از برنامه‌نویسی ۳ لایه را مطالعه کنید.