View Full Version : سوال: مشکل در پر کردن TextBox ها بر اساس اطلاعات جدول در بانک اطلاعاتی؟
پیام حیاتی
سه شنبه 12 اسفند 1393, 16:14 عصر
سلام
این فرم برنامه هست :
129047
می خواهم بعد از وارد کردن شماره پرسنلی و کلیک بر روی دکمه جستجو ، اطلاعات در textbox ها نمایش داده شود.
تشکر
sajadsobh
سه شنبه 12 اسفند 1393, 16:53 عصر
از دیتاریدر استفاده کنید:
try
{
SqlCommand cmd = new SqlCommand("SELECT * FROM Employees WHERE ID = @ID", SqlCon);
cmd.Parameters.AddWithValue("@ID", ID);
SqlCon.Open();
SqlDataReader dr = cmd.ExecuteReader();
dr.Read();
FirstName = dr["FirstName"].ToString();
LastName = dr["LastName"].ToString();
CodeMelli = dr["CodeMelli"].ToString();
Address = dr["Address"].ToString();
Mobile = dr["Mobile"].ToString();
dr.Close();
}
finally
{
if (SqlCon.State != ConnectionState.Closed)
SqlCon.Close();
}
پیام حیاتی
سه شنبه 12 اسفند 1393, 17:41 عصر
بدین شکل نوشتم ، خطا داره :
SqlConnection con = new SqlConnection("Data Source=localhost; Initial Catalog=Project; Integrated Security=TRUE ");
con.Open();
SqlCommand cmd = new SqlCommand("SELECT * from Personels where p_id= '" + textBox17.Text + "' ", con);
SqlDataReader dr = cmd.ExecuteReader();
dr.Read();
textBox16.Text = dr.["p_name"].ToString();
dr.Close();
129051
این روش خودم هست :
SqlConnection con = new SqlConnection("Data Source=localhost; Initial Catalog=Project; Integrated Security=TRUE ");
SqlCommand com = new SqlCommand("SELECT * from Personels where p_id= '" + textBox17.Text + "' ", con);
SqlDataAdapter da = new SqlDataAdapter(com);
DataSet ds = new DataSet();
da.Fill(ds, "MAGMember");
textBox16.Text = ds.Tables["MAGMember"].Rows[1]["p_name"].ToString();
اما به مقدار row گیر یده که وجود نداره ، مقدارش رو برابر 0 قرار میدم باز همین اخطار وجود داره.
129052
نمایی از جدول بانک اطلاعاتی :
129053
اگر بتونید به روش دوم توضیح بدید یا مشکل رو در این روش برطرف کرد خیلی ممنون میشم چون برام قابل درکتر هست.:قلب:
محمد آشتیانی
سه شنبه 12 اسفند 1393, 18:04 عصر
سلام
به نظر میرسه وقتی شما داری بر اساس شماره پرسنلی جستجو میکنی ، نتیجه فقط یک سطر برگردونده میشه و شما سطر دوم رو داری میخونی که خالیه
یعنی اینجا
textBox16.Text = ds.Tables["MAGMember"].Rows[1]["p_name"].ToString();
به اینصورت اصلاح کن
SqlConnection con = new SqlConnection("Data Source=localhost; Initial Catalog=Project; Integrated Security=TRUE ");
SqlCommand com = new SqlCommand("SELECT * from Personels where p_id= '" + textBox17.Text + "' ", con);
SqlDataAdapter da = new SqlDataAdapter(com);
DataSet ds = new DataSet();
da.Fill(ds, "MAGMember");
textBox16.Text = ds.Tables["MAGMember"].Rows[0]["p_name"].ToString();
موفق باشید.
پیام حیاتی
سه شنبه 12 اسفند 1393, 18:21 عصر
بسیار ممنون مشکل حل شد :قلب: ، فقط من یک اشتباه دیگه داشتم اون هم این بود که به جای p_id باید نام فیلد شماره پرسنلی قرار می گرفت.
برای حالت ComboBox جواب نمیده :
comboBox4.SelectedValue = ds.Tables["MAGMember"].Rows[0]["p_m_id"].ToString();
جدول دیگری داریم به نام مدرک که ارتباط داره با جدول پرسنل ، m_id کلید اصلی جدول مدرک است.
129055
sajadsobh
سه شنبه 12 اسفند 1393, 19:23 عصر
یعنی میخواستین خطا نگیره؟! :متفکر:
اولا که چون آیدی از نوع صحیحه باید کوئری به این شکل باشه:
SqlCommand cmd = new SqlCommand("SELECT * from Personels where p_id= '" + Convert.ToInt32(textBox17.Text) + "' ", con);
بعدشم اینکه واسه خوندن ردیف های دیتاریدر این درسته:
textBox16.Text = dr["p_name"].ToString();
نه اینجوری که شما نوشتی:
textBox16.Text = dr.["p_name"].ToString();
بعدشم در مورد کمبوباکس اگه اون مقدار SelectedValue از نوع صحیح هست نباید String بفرستی دیگه داداش من.
پیام حیاتی
سه شنبه 12 اسفند 1393, 19:47 عصر
یعنی میخواستین خطا نگیره؟! :متفکر:
اولا که چون آیدی از نوع صحیحه باید کوئری به این شکل باشه:
SqlCommand cmd = new SqlCommand("SELECT * from Personels where p_id= '" + Convert.ToInt32(textBox17.Text) + "' ", con);
بعدشم اینکه واسه خوندن ردیف های دیتاریدر این درسته:
textBox16.Text = dr["p_name"].ToString();
نه اینجوری که شما نوشتی:
textBox16.Text = dr.["p_name"].ToString();
بعدشم در مورد کمبوباکس اگه اون مقدار SelectedValue از نوع صحیح هست نباید String بفرستی دیگه داداش من.
منون از پاسخ.
string رو برداشتم اما تغییری نکرد ، value هم همینطور ، با این دستور پر شد :
comboBox4.SelectedText = ds.Tables["MAGMember"].Rows[0]["p_m_id"].ToString();
آیا این کد برای پر کردن combobox روش درستی است؟بعدا" اگر بخوام برای دکمه ویرایش کد ذخیره تغییرات رو انجام بدم مشکلی به وجود نمیاره؟
ممنون
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.