PDA

View Full Version : سوال: نمایش داده ها از بانک اطلاعاتی اکسس در لیبل



mas'oud
یک شنبه 04 اردیبهشت 1390, 15:14 عصر
سلام به همه
من یه مشکل خیلی بزرگ دارم که احتمالا برای شما خیلی کوچیک به حساب میاد!!
من تو برنامه ام میخواهم از بانک اطلاعاتی اکسس داده ای را بیرون کشیده و در یک لیبل نمایش دهم. البته با کد و دستور select
مثلا کاربر در ی تکست باکس مقداری رو وارد میکنه و با زدن فلان دکمه باید اونو تو بانک اکسس سرچ کنه و در صورت وجود مقدار معادلش در فلان فیلد رو به عنوان تکستِ لیبل نشون بده.
اگر برایتان مقدور است با یک مثال پاسخ بدهید.

اکسس 2010 استفاده کردم.

mas'oud
یک شنبه 04 اردیبهشت 1390, 16:58 عصر
خواهشا پاسخ بدید،
پروژه مهمی در دست اجرا دارم.

Reza_Yarahmadi
یک شنبه 04 اردیبهشت 1390, 18:58 عصر
دوست عزیز اگر جستجو میکردید زودتر به نتیجه میرسیدید و نیازی نبود منتظر جواب باشید.
راههای زیادی برای این قضیه وجود داره ، یکی از اونها اینه که از 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();

mas'oud
یک شنبه 04 اردیبهشت 1390, 20:14 عصر
دوست عزیز این ارور هنگام اجرا میده :
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();
}

Reza_Yarahmadi
یک شنبه 04 اردیبهشت 1390, 21:13 عصر
من خیلی با اکسس آشنا نیستم ولی اگر مشکل مربوط به کانکشن استرینگ نباشه (نمیدونم کار 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 = "";

mas'oud
دوشنبه 05 اردیبهشت 1390, 10:34 صبح
دستت درد نکنه، واقعا ممنونم که وقت گرانبهاتون رو صرف پاسخ دادن به من کردید.
مشکلم هم حل شد راه حلش هم این بود:
باید نام فیلد ها رو داخل بلاک ([]) میذاشتم همین!

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