PDA

View Full Version : انتخاب یه سطر از data Gride و نمایش محتویات ان درText های مربوطه



raha_20
یک شنبه 25 مرداد 1388, 16:05 عصر
من تو برنامه ام میخوام وقتی روی یک سطر از Data Grid Viwe کلیک میکنم اطلاعات آن داخل یه سری Text Box نشان داده بشه . و میخوام این کار را به وسیله Binding ها و در کدنویسی انجام بدم ولی نمیدونم چطوری اینکار را انجام بدم.


دوستان اگه کسی میدونه باگذاشتن قطعه کد به من کمک کنه

Reza_Yarahmadi
یک شنبه 25 مرداد 1388, 17:31 عصر
SqlDataAdapter da = new SqlDataAdapter("Select * from Table1", Conn);
DataSet ds = new DataSet();
da.Fill(ds, "t1");
dataGridView2.DataSource = ds.Tables[0];
textBox1.DataBindings.Add("text", ds.Tables[0], "Field2");

raha_20
سه شنبه 27 مرداد 1388, 10:40 صبح
نمیشه منم همین کد را نوشتم ولی فقط اولین سطر رابه من نشان میده . من میخوام وقتی روی یه سطر مثلا سطر 10 کلیک کردم اطلاعات اون را داخل text نشان بده

Reza_Yarahmadi
سه شنبه 27 مرداد 1388, 13:13 عصر
این کد رو امتحان کردم مشکلی نداشت! احتمالا جای دیگه ای کدت مشکل داره. اگه کد رو بذاری بهتر میشه کمک کرد.

raha_20
سه شنبه 27 مرداد 1388, 14:45 عصر
من برنامم را آپلود کردم ولی توی این سایت آپلود نشد از این آدرس اگه لطف کیند بگیرین و مشکل من که توی فرم frmmemberEdit هست را رفع کنید .فایل Libraryو Data را آپلود کنید . ممنون

آدرس : f-a-h-i-m-e-h.persiangig.com (http://f-a-h-i-m-e-h.persiangig.com/)

این فایل با نک اطلاعات است35500

Reza_Yarahmadi
سه شنبه 27 مرداد 1388, 16:15 عصر
فایلی که آپلود کردید مشکل داره (فایلی که توی persiangig آپلود کردید) نتونستم دانلود کنم. یا فایل رو دوباره آپلود کنید و یا متن کد رو بذارید.

raha_20
سه شنبه 27 مرداد 1388, 16:31 عصر
namespace Library
{
public partial class FrmEditMember : Form

{
SqlDataAdapter adap = new SqlDataAdapter();
SqlConnection con = new SqlConnection("Data Source=localhost;Initial Catalog=Library;Integrated Security=True");
SqlCommand objsqlcommand = new SqlCommand();
DataSet dataset1 = new DataSet();


public FrmEditMember()
{
InitializeComponent();
}
private void FrmEditMember_Load(object sender, EventArgs e)
{

adap.SelectCommand = new SqlCommand();
adap.SelectCommand.CommandText = "SELECT * FROM tbl_member ";
adap.SelectCommand.Connection = con;
adap.SelectCommand.CommandType = CommandType.Text;
con.Open();
adap.Fill(dataset1, "tbl_memberEdit");
con.Close();
dataGridView1.DataSource=dataset1;
dataGridView1.DataMember="tbl_memberEdit";
}
private void txtSearch_TextChanged(object sender, EventArgs e)
{
adap.SelectCommand = new SqlCommand();
adap.SelectCommand.CommandText="SELECT * FROM tbl_member WHERE m_code LIKE '"+txtSearch.Text+"%'";

adap.SelectCommand.Connection = con;
adap.SelectCommand.CommandType = CommandType.Text;
con.Open();
dataset1.Tables[0].Clear();
adap.Fill(dataset1, "tbl_memberEdit");
con.Close();
dataGridView1.DataSource = dataset1;
dataGridView1.DataMember = "tbl_memberEdit";
}

private void dataGridView1_Click(object sender, EventArgs e)
{
// این قسمت کد من مشکل داره


txtCodeOzviat.DataBindings.Add("Text",dataset1.Tables[0], "m_code");

}
private void FrmEditMember_FormClosed(object sender, FormClosedEventArgs e)
{

Form1.frmopenmemberEdit= false;
}

}
}

oldboy
سه شنبه 27 مرداد 1388, 16:38 عصر
تو رویداد مربوط به CellClick این کد رو اضافه کن.
مقدار مربوط به سلول اول سطر انتخاب شده تو txtMemberName و مقدار مربوط به سلول دوم در txtMemberNumber قرار میگیره.


txtMemberName.Text = dgvRent.Rows[dgvRent.SelectedCells[0].RowIndex].Cells[0].Value.ToString();
txtMemberNumber.Text = dgvRent.Rows[dgvRent.SelectedCells[0].RowIndex].Cells[1].Value.ToString();

Reza_Yarahmadi
سه شنبه 27 مرداد 1388, 21:30 عصر
مشکل توی رویدادیه که کد مقید سازی تکست باکس رو نوشتی! نیازی نیست این کد رو توی رویداد خاصی بنویسی ، هر جایی که دیتاگرید رو پر میکنی همون جا این کد رو بنویس.

...
adap.Fill(dataset1, "tbl_memberEdit");
con.Close();
dataGridView1.DataSource = dataset1;
dataGridView1.DataMember = "tbl_memberEdit";


txtCodeOzviat.DataBindings.Add("Text",dataset1.Tables[0], "m_code");
...

mjt327
چهارشنبه 28 مرداد 1388, 12:44 عصر
می تونی از این روش هم استفاده کنی که در خاصیت کیلک یا cell click می توانی تکه کد زیرا قرار بدی
مثلا
textbox1.text=datagridview.currentrows.cell[name of column].value.tostring
برای هر کدام از ستون های می توانی بنویسی

raha_20
چهارشنبه 28 مرداد 1388, 13:21 عصر
بله من از روشی که oldboy گفتن استفاده کردم . پس اصلا نیازی نیست که من از data binding استفاده کنم .؟؟

bashiry
پنج شنبه 29 مرداد 1388, 21:18 عصر
شما چرا از خصوصیت DATABINDING استفاده نمی کنید؟
اول تکست مورد نظر رو انتخاب ، بعد به بخش خصوصیات بخش DataBinding برو و تنظیمات رو انجام بده.
من خودم از این روش استفاده می کنم و کد نویسی هم نداره

raha_20
جمعه 30 مرداد 1388, 01:02 صبح
این روش خوبه ولی واسه وقتی که میخوام موقعی که فرمت نمایش داده میشه ارتباط ها برقرار باشه و لی من میخوام با کلیک روی دیتا گراید این کار انجام بشه

bashiry
جمعه 30 مرداد 1388, 09:46 صبح
مشکلی نیست وقتی روی گرید کلیک کنی متناسب با همون کلیک شما تکست ها هم پر میشن

raha_20
جمعه 30 مرداد 1388, 11:23 صبح
ولی همون ابتدا که فرم لود میشه هم نشون میده . درسته؟

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

raziyehbazargan
سه شنبه 21 خرداد 1392, 12:54 عصر
private void dataGridView2_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
try
{
if (e.RowIndex >= 0 && e.ColumnIndex ==-1)
{


txtRegistrationDate.Text = dataGridView2.Rows[e.RowIndex].Cells["RegistrationDate"].Value.ToString();
txtDamageDate.Text = dataGridView2.Rows[e.RowIndex].Cells["DamageDate_dmg"].Value.ToString();
cmb_CustomType.Text = dataGridView2.Rows[e.RowIndex].Cells["CustomType_dmg"].Value.ToString();
cmb_EmptyFull.Text = dataGridView2.Rows[e.RowIndex].Cells["EmptyFull_dmg"].Value.ToString();
cmb_Resp.Text = dataGridView2.Rows[e.RowIndex].Cells["DamageResp_dmg"].Value.ToString();
cmb_Position.Text = dataGridView2.Rows[e.RowIndex].Cells["Position_dmg"].Value.ToString();
cmb_Reason.Text = dataGridView2.Rows[e.RowIndex].Cells["Reason_dmg"].Value.ToString();
cmb_Phase.Text = dataGridView2.Rows[e.RowIndex].Cells["Phase_dmg"].Value.ToString();
cmb_Operators.Text = dataGridView2.Rows[e.RowIndex].Cells["Operator_dmg"].Value.ToString();
txt_Description.Text = dataGridView2.Rows[e.RowIndex].Cells["Description_dmg"].Value.ToString();
txt_ExpertView.Text = dataGridView2.Rows[e.RowIndex].Cells["ExpertView_dmg"].Value.ToString();





}
}
catch (Exception)
{
throw;
}
}