نمایش داده ها از بانک اطلاعاتی اکسس در لیبل
سلام به همه
من یه مشکل خیلی بزرگ دارم که احتمالا برای شما خیلی کوچیک به حساب میاد!!
من تو برنامه ام میخواهم از بانک اطلاعاتی اکسس داده ای را بیرون کشیده و در یک لیبل نمایش دهم. البته با کد و دستور select
مثلا کاربر در ی تکست باکس مقداری رو وارد میکنه و با زدن فلان دکمه باید اونو تو بانک اکسس سرچ کنه و در صورت وجود مقدار معادلش در فلان فیلد رو به عنوان تکستِ لیبل نشون بده.
اگر برایتان مقدور است با یک مثال پاسخ بدهید.
اکسس 2010 استفاده کردم.
نقل قول: نمایش داده ها از بانک اطلاعاتی اکسس در لیبل
خواهشا پاسخ بدید،
پروژه مهمی در دست اجرا دارم.
نقل قول: نمایش داده ها از بانک اطلاعاتی اکسس در لیبل
دوست عزیز اگر جستجو میکردید زودتر به نتیجه میرسیدید و نیازی نبود منتظر جواب باشید.
راههای زیادی برای این قضیه وجود داره ، یکی از اونها اینه که از DataReader استفاده کنید. به مثال زیر نگاه کنید.
OleDbCommand cmd = new OleDbCommand("Select Your_Field From TableName Where Name like @Name", conn);
cmd.Parameters.AddWithValue("@Name", textBox1.Text);
conn.Open();
OleDbDataReader dr = cmd.ExecuteReader();
if (dr.Read())
label1.Text = dr["Your_Field"].ToString();
else
label1.Text = "";
conn.Close();
نقل قول: نمایش داده ها از بانک اطلاعاتی اکسس در لیبل
دوست عزیز این ارور هنگام اجرا میده :
IErrorInfo.GetDescription failed with E_FAIL(0x80004005).
فلش ارور هم به سمت cmd.ExecuteReader();
private void button1_Click(object sender, EventArgs e)
{
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0 ;"+
"Data Source=d:\\ol_db.accdb;Persist Security Info=False;");
OleDbCommand cmd = new OleDbCommand("Select translate From tbl_504 Where word like @Name", conn);
cmd.Parameters.AddWithValue("@Name", textBox1.Text);
conn.Open();
OleDbDataReader dr = cmd.ExecuteReader();
if (dr.Read())
label1.Text = dr["translate"].ToString();
else
label1.Text = "";
conn.Close();
}
نقل قول: نمایش داده ها از بانک اطلاعاتی اکسس در لیبل
من خیلی با اکسس آشنا نیستم ولی اگر مشکل مربوط به کانکشن استرینگ نباشه (نمیدونم کار Persist Security Info=False چیه) یا مشکل در تعریف پارامتر است (بصورت زیر تست کنید ببینید درست کار میکنه یا نه) و یا در طراحی دیتابیس تنظیمات خاصی انجام دادید که باعث بروز خطا میشه!!
OleDbCommand cmd = new OleDbCommand("Select translate From tbl_504 Where word like '" + textBox1.Text + "'", conn);
درصورتی که بازم مشکل داشت بصورت زیر هم تست کنید.
OleDbDataAdapter da = new OleDbDataAdapter("Select translate From tbl_504 Where word like @Name", conn);
da.SelectCommand.Parameters.AddWithValue("@Name", textBox1.Text);
DataTable dt = new DataTable();
da.Fill(dt);
if (dt.Rows.Count > 0)
label1.Text = dt.Rows[0][0].ToString();
else
label1.Text = "";
نقل قول: نمایش داده ها از بانک اطلاعاتی اکسس در لیبل
دستت درد نکنه، واقعا ممنونم که وقت گرانبهاتون رو صرف پاسخ دادن به من کردید.
مشکلم هم حل شد راه حلش هم این بود:
باید نام فیلد ها رو داخل بلاک ([]) میذاشتم همین!
باز هم به خاطر راهنماییتون درباره نمایش اطلاعات روی لیبل متشکرم.