PDA

View Full Version : دیتا گرید من آپدیت نمیشه چرا؟



ebtekar
پنج شنبه 10 آبان 1386, 18:22 عصر
سلام من آماتور هستم کلی تو سایت گشتم به سورس های من نگاه کنید ببینید چرا آپدیت نمیشه مرسی از شما اگه ایرادشو ذکر کنید که بهتر میشه

choobin84
پنج شنبه 10 آبان 1386, 19:50 عصر
اگر منظور آپ دیت بعد از کلیک دکمه 2 هست باید بم، شما باید یا متغیر های datatable و dataset را بطور سراسری تعریف کنید و یا در button2_click هم متغیر dataset را با یک دستور select دیگر پر کنید.
همین.

ebtekar
پنج شنبه 10 آبان 1386, 22:11 عصر
شرمنده من متوجه نشدم یا شدم نتونستم درست انجام بدم اگه ممکنه تغیرات رو خودتون انجام بدید راهنمایی بیشتر نیاز دارم بازم تنجام نشد ا این کاری که گفتید


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Globalization;//هàںï ëںê ©ںï ¢نï© ھ ںë
namespace tellbook
{
publicpartialclassForm1 : Form
{
//ںï¤ں§ èںëè¬ë
SqlConnection objConnection = newSqlConnection("Persist Security Info=False; server=localhost; database=telbook; Integrated Security=True;");
SqlDataAdapter objDataAdapter = newSqlDataAdapter();
CurrencyManager objCurrencyManager;
public Form1()
{
InitializeComponent();

}
privatevoid label1_Click(object sender, EventArgs e)
{
}
privatevoid Form1_Load(object sender, EventArgs e)
{
//هں©«ï ëیï«ï ں ¬©یم ©ëںêى
CultureInfo info1 = newCultureInfo("fa-IR");
info1 = InputLanguage.CurrentInputLanguage.Culture;
info1 = newCultureInfo("fa-IR");
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(info1);
//**********************************************
//ںï¤ں§ èںëè¬ë ی §ï¢ں«¢
SqlConnection objConnection = newSqlConnection("Persist Security Info=False; server=localhost; database=telbook; Integrated Security=True;");
SqlDataAdapter objDataAdapter = newSqlDataAdapter();
DataSet objDataSet = newDataSet();
DataView objDataView = newDataView();
// ©ںï §©ïںه¢ هïé§ ىںï ¤§یé
objDataAdapter.SelectCommand = newSqlCommand();
objDataAdapter.SelectCommand.Connection = objConnection;
objDataAdapter.SelectCommand.CommandText ="SELECT name as 'ëںê',lname as 'ëںê ¦ںëیں§گï',tell as '¢éهë',mobile as 'êی ںïé' FROM tellbook";
objDataAdapter.SelectCommand.CommandType =CommandType.Text;
// ںھ è©§ë §ï¢ں ï«
objConnection.Open();
// ں© گ¨ں©ï ¤§یé §© §ï¢ں ™§ںپ¢ی©
objDataAdapter.Fill(objDataSet,"tellbook");
//**************
objDataView = newDataView(objDataSet.Tables["tellbook"]);
objCurrencyManager = (CurrencyManager)(this.BindingContext[objDataView]);
//. «¢ §ï¢ں ï«
objConnection.Close();
// ¢ëâïê §ï¢ںگ©ï§
// to bind it to our data...
dataGridView1.AutoGenerateColumns = true;
dataGridView1.DataSource =objDataSet;
dataGridView1.DataMember = "tellbook";
//¬êں©¬ ¢م§ں§ ©èی©§ ىںï ¤§یé
label5.Text ="¢م§ں§ ©èی©§ىں: " + objCurrencyManager.Count.ToString();
// پںè è©§ë ¥ںهâى
objDataAdapter = null;
objConnection = null;


}
privatevoid button1_Click(object sender, EventArgs e)
{
SqlConnection objConnection = newSqlConnection("Persist Security Info=False; server=localhost; database=telbook; Integrated Security=True;");
SqlDataAdapter objDataAdapter = newSqlDataAdapter();
SqlCommand objcommand = newSqlCommand();
objcommand.Connection = objConnection;
objcommand.CommandText = "INSERT INTO tellbook" +"(name,lname,tell,mobile) " +"VALUES(@au_name,@au_lname,@au_tell,@au_mobile)";
objcommand.Parameters.AddWithValue("@au_name", name.Text);
objcommand.Parameters.AddWithValue("@au_lname", lname.Text);
objcommand.Parameters.AddWithValue("@au_tell", tell.Text);
objcommand.Parameters.AddWithValue("@au_mobile", mobil.Text);
objConnection.Open();
objcommand.ExecuteNonQuery();
objConnection.Close();
Form1_Load(null, null);
//پںè 詧ë êçں§ï© ¢è« ںè« ىں
name.Text = "";
lname.Text = "";
tell.Text = "";
mobil.Text = "";
}
privatevoid dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
}
privatevoid comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
}
privatevoid dataGridView1_SelectionChanged(object sender, EventArgs e)
{
}

privatevoid textBox1_TextChanged(object sender, EventArgs e)
{
SqlConnection objConnection = newSqlConnection("Persist Security Info=False; server=localhost; database=telbook; Integrated Security=True;");
SqlDataAdapter objDataAdapter = newSqlDataAdapter("select * from tellbook", objConnection);
DataSet objDataSet = newDataSet();
objDataAdapter.Fill(objDataSet);
DataView objdataview = newDataView(objDataSet.Tables[0]);
objdataview.RowFilter = "lname like '" + this.textBox1.Text + "%'";
dataGridView1.DataSource = objdataview;
dataGridView1.Columns[0].HeaderText = "ëںê";
dataGridView1.Columns[1].HeaderText = "ëںê ¦ںëیں§گï";
dataGridView1.Columns[2].HeaderText = "¢éهë";
dataGridView1.Columns[3].HeaderText = "êی ںïé";
}
privatevoid keypress(object sender, KeyPressEventArgs e)
{
// ںم£ êï¬ی§ ¢ں هçل پں©ںꢩ ىںï م§§ï ©ں ںھ èï ©§ §©ïںه¢ èë§
if (!char.IsDigit(e.KeyChar) &&
!char.IsControl(e.KeyChar))
e.Handled = true;
}
privatevoid button2_Click(object sender, EventArgs e)
{
DataTable objdatatable = newDataTable();
DataSet objDataSet = newDataSet();
SqlConnection objConnection = newSqlConnection("Persist Security Info=False; server=localhost; database=telbook; Integrated Security=True;");
SqlDataAdapter objDataAdapter = newSqlDataAdapter("select * from tellbook", objConnection);
objDataAdapter.Update(objdatatable);
dataGridView1.DataSource =objdatatable;
//update datagrid
objDataAdapter.UpdateCommand = newSqlCommand("update tellbook set name=@name,lname=@lname,tell=@tell,mobile=@mobile where lname=@lname", objConnection);
objDataAdapter.UpdateCommand.Parameters.AddWithVal ue("@name", typeof(string)).SourceColumn = "name";
objDataAdapter.UpdateCommand.Parameters.AddWithVal ue("@lname", typeof(string)).SourceColumn = "lname";
objDataAdapter.UpdateCommand.Parameters.AddWithVal ue("@tell", typeof(string)).SourceColumn = "tell";
objDataAdapter.UpdateCommand.Parameters.AddWithVal ue("@mobile", typeof(string)).SourceColumn = "mobile";
objDataAdapter.Update(objdatatable);
}
}
}

choobin84
جمعه 11 آبان 1386, 15:47 عصر
SqlConnection objConnection = newSqlConnection("Persist Security Info=False; server=localhost; database=telbook; Integrated Security=True;");
SqlDataAdapter objDataAdapter = newSqlDataAdapter();
DataSet objDataSet = newDataSet();
DataView objDataView = newDataView();
objDataAdapter.SelectCommand = newSqlCommand();
objDataAdapter.SelectCommand.Connection = objConnection;
objDataAdapter.SelectCommand.CommandText ="SELECT name as 'ëںê',lname as 'ëںê ¦ںëیں§گï',tell as '¢éهë',mobile as 'êی ںïé' FROM tellbook";
objDataAdapter.SelectCommand.CommandType =CommandType.Text;
objConnection.Open();
objDataAdapter.Fill(objDataSet,"tellbook");
objDataView = newDataView(objDataSet.Tables["tellbook"]);
dataGridView1.DataSource =objDataSet;
dataGridView1.DataMember = "tellbook"



این تیکه رو در کلیک باتون ها قرار بدید.

PC2st
جمعه 11 آبان 1386, 16:05 عصر
من هدف کدهایی که نوشته بودید رو نفهمیدم، شیئ مثل objConnection رو در همه جا تعریف کرده بودید! واقعا چه نیازی به این کار هست؟ همچنین در رویدادی مثل TextChanged توسط متد Fill شیئ objDataSet رو از اول پر میکنید (!). الان مشکل شما در همین موارد است یعنی اینکه اشیائی مثل objConnection, objDataAdapter , objDataSet و ... رو در هر رویداد یا متد و ... از اول تعریف میکنید، در حالیکه باید آنها را فقط یک بار و بصورت یک فیلد در کلاس تعریف نمایید تا در تمام رویدادها و متدها و ... قابل دسترسی باشند. و ایراد دیگر این است که در رویدادی مثل TextChanged، تمام اطلاعات رو از بانک خونده و از اول اونها رو به DataSet میفرستید (بعبارتی همه چیز سر جای خودش قرار میگیره).
برای آپدیت کردن دیتاگرید، این نمونه مثال رو دیدید؟ (http://barnamenevis.org/forum/attachment.php?attachmentid=10557&d=1188218224)

ebtekar
جمعه 11 آبان 1386, 18:35 عصر
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Globalization;//هàںï ëںê ©ںï ¢نï© ھ ںë
namespace tellbook
{
publicpartialclassForm1 : Form
{
//ںï¤ں§ èںëè¬ë
privateDataTable objdatatable = newDataTable();
privateSqlConnection objConnection = newSqlConnection("Persist Security Info=False; server=localhost; database=telbook; Integrated Security=True;");
privateSqlDataAdapter objDataAdapter = newSqlDataAdapter();
CurrencyManager objCurrencyManager;
public Form1()
{
InitializeComponent();

}
privatevoid label1_Click(object sender, EventArgs e)
{
}
privatevoid Form1_Load(object sender, EventArgs e)
{
//هں©«ï ëیï«ï ں ¬©یم ©ëںêى
CultureInfo info1 = newCultureInfo("fa-IR");
info1 = InputLanguage.CurrentInputLanguage.Culture;
info1 = newCultureInfo("fa-IR");
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(info1);
//**********************************************
// ©ںï §©ïںه¢ هïé§ ىںï ¤§یé
objDataAdapter.SelectCommand = newSqlCommand("SELECT no as '¬êں©ى',name as 'ëںê',lname as 'ëںê ¦ںëیں§گï',tell as '¢éهë',mobile as 'êی ںïé' FROM tellbook", this.objConnection);
objDataAdapter.Fill(this.objdatatable);
this.dataGridView1.DataSource = objdatatable;
//**************
DataView objDataView = newDataView(objdatatable);
objCurrencyManager = (CurrencyManager)(this.BindingContext[objDataView]);
// ¢ëâïê §ï¢ںگ©ï§
dataGridView1.AutoGenerateColumns = true;
dataGridView1.DataSource =objdatatable;
//¬êں©¬ ¢م§ں§ ©èی©§ ىںï ¤§یé
label5.Text ="¢م§ں§ ©èی©§ىں: " + objCurrencyManager.Count.ToString();




}
privatevoid button1_Click(object sender, EventArgs e)
{
SqlCommand objcommand = newSqlCommand();
objcommand.Connection = objConnection;
objcommand.CommandText = "INSERT INTO tellbook" +"(name,lname,tell,mobile) " +"VALUES(@au_name,@au_lname,@au_tell,@au_mobile)";
objcommand.Parameters.AddWithValue("@au_name", name.Text);
objcommand.Parameters.AddWithValue("@au_lname", lname.Text);
objcommand.Parameters.AddWithValue("@au_tell", tell.Text);
objcommand.Parameters.AddWithValue("@au_mobile", mobil.Text);
objConnection.Open();
objcommand.ExecuteNonQuery();
objConnection.Close();
Form1_Load(null, null);
//پںè 詧ë êçں§ï© ¢è« ںè« ىں
name.Text = "";
lname.Text = "";
tell.Text = "";
mobil.Text = "";
}
privatevoid dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
}
privatevoid comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
}
privatevoid dataGridView1_SelectionChanged(object sender, EventArgs e)
{
}

privatevoid textBox1_TextChanged(object sender, EventArgs e)
{
objDataAdapter.SelectCommand = newSqlCommand("SELECT * FROM tellbook", this.objConnection);
DataSet objDataSet = newDataSet();
objDataAdapter.Fill(objDataSet);
DataView objdataview = newDataView(objDataSet.Tables[0]);
objdataview.RowFilter = "lname like '" + this.textBox1.Text + "%'";
dataGridView1.DataSource = objdataview;
dataGridView1.Columns[0].HeaderText = "ëںê";
dataGridView1.Columns[1].HeaderText = "ëںê ¦ںëیں§گï";
dataGridView1.Columns[2].HeaderText = "¢éهë";
dataGridView1.Columns[3].HeaderText = "êی ںïé";
}
privatevoid keypress(object sender, KeyPressEventArgs e)
{
// ںم£ êï¬ی§ ¢ں هçل پں©ںꢩ ىںï م§§ï ©ں ںھ èï ©§ §©ïںه¢ èë§
if (!char.IsDigit(e.KeyChar) &&
!char.IsControl(e.KeyChar))
e.Handled = true;
}
privatevoid button2_Click(object sender, EventArgs e)
{
//update datagrid
this.objDataAdapter.UpdateCommand = newSqlCommand("update tellbook set name=@name,lname=@lname,tell=@tell,mobile=@mobile where no=@no", objConnection);
this.objDataAdapter.UpdateCommand.Parameters.AddWi thValue("@name", typeof(string)).SourceColumn = "name";
this.objDataAdapter.UpdateCommand.Parameters.AddWi thValue("@lname", typeof(string)).SourceColumn = "lname";
this.objDataAdapter.UpdateCommand.Parameters.AddWi thValue("@tell", typeof(string)).SourceColumn = "tell";
this.objDataAdapter.UpdateCommand.Parameters.AddWi thValue("@mobile", typeof(string)).SourceColumn = "mobile";
this.objDataAdapter.UpdateCommand.Parameters.AddWi thValue("@no", typeof(int)).SourceColumn = "no";
this.objDataAdapter.Update(this.objdatatable);
}
}
}

طبق دستورات شما عمل کردم ولی بازم درست نمیشه کمکم کنید خواهش می کنم من باید این پروزه رو بدم دانشگاه

choobin84
یک شنبه 13 آبان 1386, 05:45 صبح
ای جماعت برنامه نویس خواهش می کنم مشکل منو حل کنید چرا دیگه کسی مشکل منو پی گیری نمی کنه؟:گریه::گریه::گریه:

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

جواب قبلا داده شده،
در هر جایی که می خواهید دیتاگرید دوباره از اطلاعات جدید پر شود باید همان کاری را بکنید که در Form_Load‌انجام داده اید.

داده ها را از بانک بخوانید و آن داده ها را دوباره در دیتاگرید بریزید. همین.

توی برنامه یکبار اینکار را انجام داده اید. دوباره همان کار را بکنید.

zhashemi
جمعه 27 فروردین 1389, 21:28 عصر
سلام منظورت از آپدیت درج اطلاعات تو دیتاگریده؟
اگه اینطوره پس باید ازاین استفاده کنیدر فرم لود بعد ازcon.connectionstring بنویس
con.open();
string strda="select* from table"
da=new sqldataadapter(strda,con)
da.fill(dataset,"table");
datagridview1.databinding.add(new binding("datasource",dataset,"table"));
con.close();
به جای dataset نام dataset وبه جای table نام جدولت رو بنویس
من دقیقا نمیدونم چه کارکردی ولی این کاری بود که ازدستم برمیومد از بعضی ازاعضا نباید توقع داشته باشی چون اصلا به ما تازه کارا اهمیت نمیدن منم چند تاکدی که میخواستم نود درصد با سعی خودم نوشتم ازلحن بد بعضی دوستان ناراحت نباش من متاسفانه به جای اینکه امیدوارکنند بیشتر تحقیرت میکنن به هرحال اگه مشکلت حل نشد یه خبری بده من نهایت سعیم رو میکنم که مشکلت حل شه.

s.khoshfekran
جمعه 27 فروردین 1389, 21:35 عصر
http://barnamenevis.org/forum/showthread.php?t=214949
این شاید به دردت بخوره