انتخاب یه سطر از data Gride و نمایش محتویات ان درText های مربوطه
من تو برنامه ام میخوام وقتی روی یک سطر از Data Grid Viwe کلیک میکنم اطلاعات آن داخل یه سری Text Box نشان داده بشه . و میخوام این کار را به وسیله Binding ها و در کدنویسی انجام بدم ولی نمیدونم چطوری اینکار را انجام بدم.
دوستان اگه کسی میدونه باگذاشتن قطعه کد به من کمک کنه
نقل قول: انتخاب یه سطر از data Gride و نمایش محتویات ان درText های مربوطه
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");
نقل قول: انتخاب یه سطر از data Gride و نمایش محتویات ان درText های مربوطه
نمیشه منم همین کد را نوشتم ولی فقط اولین سطر رابه من نشان میده . من میخوام وقتی روی یه سطر مثلا سطر 10 کلیک کردم اطلاعات اون را داخل text نشان بده
نقل قول: انتخاب یه سطر از data Gride و نمایش محتویات ان درText های مربوطه
این کد رو امتحان کردم مشکلی نداشت! احتمالا جای دیگه ای کدت مشکل داره. اگه کد رو بذاری بهتر میشه کمک کرد.
1 ضمیمه
نقل قول: انتخاب یه سطر از data Gride و نمایش محتویات ان درText های مربوطه
من برنامم را آپلود کردم ولی توی این سایت آپلود نشد از این آدرس اگه لطف کیند بگیرین و مشکل من که توی فرم frmmemberEdit هست را رفع کنید .فایل Libraryو Data را آپلود کنید . ممنون
آدرس : f-a-h-i-m-e-h.persiangig.com
این فایل با نک اطلاعات استضمیمه 35500
نقل قول: انتخاب یه سطر از data Gride و نمایش محتویات ان درText های مربوطه
فایلی که آپلود کردید مشکل داره (فایلی که توی persiangig آپلود کردید) نتونستم دانلود کنم. یا فایل رو دوباره آپلود کنید و یا متن کد رو بذارید.
نقل قول: انتخاب یه سطر از data Gride و نمایش محتویات ان درText های مربوطه
namespace
Library
{
publicpartialclassFrmEditMember : Form
{
SqlDataAdapter adap = newSqlDataAdapter();
SqlConnection con = newSqlConnection("Data Source=localhost;Initial Catalog=Library;Integrated Security=True");
SqlCommand objsqlcommand = newSqlCommand();
DataSet dataset1 = newDataSet();
public FrmEditMember()
{
InitializeComponent();
}
privatevoid FrmEditMember_Load(object sender, EventArgs e)
{
adap.SelectCommand = newSqlCommand();
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";
}
privatevoid txtSearch_TextChanged(object sender, EventArgs e)
{
adap.SelectCommand = newSqlCommand();
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";
}
privatevoid dataGridView1_Click(object sender, EventArgs e)
{
// این قسمت کد من مشکل داره
txtCodeOzviat.DataBindings.Add(
"Text",dataset1.Tables[0], "m_code");
}
privatevoid FrmEditMember_FormClosed(object sender, FormClosedEventArgs e)
{
Form1.frmopenmemberEdit= false;
}
}
}
نقل قول: انتخاب یه سطر از data Gride و نمایش محتویات ان درText های مربوطه
تو رویداد مربوط به 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();
نقل قول: انتخاب یه سطر از data Gride و نمایش محتویات ان درText های مربوطه
مشکل توی رویدادیه که کد مقید سازی تکست باکس رو نوشتی! نیازی نیست این کد رو توی رویداد خاصی بنویسی ، هر جایی که دیتاگرید رو پر میکنی همون جا این کد رو بنویس.
...
adap.Fill(dataset1, "tbl_memberEdit");
con.Close();
dataGridView1.DataSource = dataset1;
dataGridView1.DataMember = "tbl_memberEdit";
txtCodeOzviat.DataBindings.Add("Text",dataset1.Tab les[0], "m_code");
...
نقل قول: انتخاب یه سطر از data Gride و نمایش محتویات ان درText های مربوطه
می تونی از این روش هم استفاده کنی که در خاصیت کیلک یا cell click می توانی تکه کد زیرا قرار بدی
مثلا
textbox1.text=datagridview.currentrows.cell[name of column].value.tostring
برای هر کدام از ستون های می توانی بنویسی
نقل قول: انتخاب یه سطر از data Gride و نمایش محتویات ان درText های مربوطه
بله من از روشی که oldboy گفتن استفاده کردم . پس اصلا نیازی نیست که من از data binding استفاده کنم .؟؟
نقل قول: انتخاب یه سطر از data Gride و نمایش محتویات ان درText های مربوطه
شما چرا از خصوصیت DATABINDING استفاده نمی کنید؟
اول تکست مورد نظر رو انتخاب ، بعد به بخش خصوصیات بخش DataBinding برو و تنظیمات رو انجام بده.
من خودم از این روش استفاده می کنم و کد نویسی هم نداره
نقل قول: انتخاب یه سطر از data Gride و نمایش محتویات ان درText های مربوطه
این روش خوبه ولی واسه وقتی که میخوام موقعی که فرمت نمایش داده میشه ارتباط ها برقرار باشه و لی من میخوام با کلیک روی دیتا گراید این کار انجام بشه
نقل قول: انتخاب یه سطر از data Gride و نمایش محتویات ان درText های مربوطه
مشکلی نیست وقتی روی گرید کلیک کنی متناسب با همون کلیک شما تکست ها هم پر میشن
نقل قول: انتخاب یه سطر از data Gride و نمایش محتویات ان درText های مربوطه
ولی همون ابتدا که فرم لود میشه هم نشون میده . درسته؟
من به این خاطر ازش استفاده نکردم . حالا به هر حال این هم یه روش هست
نقل قول: انتخاب یه سطر از data Gride و نمایش محتویات ان درText های مربوطه
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;
}
}