PDA

View Full Version : مشکل در جستجو بین جداول در اکسس



alasht
پنج شنبه 10 تیر 1389, 19:48 عصر
با سلام
این مشکل یتابیس ما تمومی نداره یه جاشو درست میکنیم جای دیگش میلنگه
واقعا معذرت میخوام که اینقدر سوال میکنم
مشکل من اینه که من دو تا تکست باکس و یک btn و یک دیتا گرید ویو دارم برای جستجو بر اساس نام و نام خانوادگی ( دیتابیس اکسس هست )
http://up.iranblog.com/Files/5b2a2e4baee2472998fb.JPG

من کد زیر رو داخل دکمه جستجو نوشتم


private void btn_search_Click(object sender, EventArgs e)
{
string Constr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " +
Application.StartupPath + "\\userdb2.mdb";
OleDbConnection Connect = new OleDbConnection(Constr);
if (Connect.State == ConnectionState.Closed) Connect.Open();

string select_search = "select * From moshakhasat";
if (txt_search_name.Text != string.Empty) {
select_search += " AND nam='" + txt_search_name.Text + "'";
}
if (txt_search_famil.Text != string.Empty)
{
select_search += " AND famil='" + txt_search_famil.Text + "'";
}
OleDbDataAdapter dataad_1 = new OleDbDataAdapter(select_search, Connect);
DataSet dataset_1 = new DataSet();
dataad_1.Fill(dataset_1, "search");
datagrid2.AutoGenerateColumns = false;
datagrid2.DataSource = dataset_1.Tables["search"];


}

ولی وقتی برنامه رو اجرا میکنم و نام رو وارد میکنم و رو دکمه جستجو کلیک میکنم با این ارور مواجه میشم

http://up.iranblog.com/Files/bfcc3e63f6df4d4e8caf.JPG

خواهش میکنم کمکم کنید و بگید اشکالم کجاست :افسرده:

mmd2009
پنج شنبه 10 تیر 1389, 20:09 عصر
با سلام

اگر اشتباه نکنم باید به جای کد




dataad_1.Fill(dataset_1, "search");


باید اینو بنویسید :




dataad_1.Fill(dataset_1, "moshakhasat");

alasht
پنج شنبه 10 تیر 1389, 20:12 عصر
نه دوست عزیز مشکل اون نیست اون رو هر اسمی میشه گذاشت
راهی برای سرچ کردن ندارید ؟

mmd2009
پنج شنبه 10 تیر 1389, 20:27 عصر
میشه برنامتو بذاری ؟؟

mbsmbsmbs
پنج شنبه 10 تیر 1389, 20:42 عصر
عزيزم دستور Select از نظر ساختاري اشتباهه
"select * From moshakhasat where Field=Shart and Field=Shart2 "

mbsmbsmbs
پنج شنبه 10 تیر 1389, 20:47 عصر
در ضمن در If اول And نداره و در صورتي IF دوم And داره كه txt_search_name.Text پر باشه و در صورتي كه هر دوتا تكس باكس خالي باشه Where هم نخواهيم داشت

mbsmbsmbs
پنج شنبه 10 تیر 1389, 20:59 عصر
راهنمايي:زماني كه برنامه از سينكتست اشكال ميگيره اون دستور اسكيوال رو در خود اكسس اجرا كن اشكالش رو متوجه ميشي

alasht
پنج شنبه 10 تیر 1389, 21:01 عصر
بفرمایید اینم برنامه
البته برنامه اصلی نیست چون برنامه اصلی رو نمی تونم بزارم شما رو همین کار کنی ممنون میشم :قلب:

alasht
پنج شنبه 10 تیر 1389, 21:52 عصر
دوست عزیز جواب نمیدی ؟ :گریه:

mmd2009
پنج شنبه 10 تیر 1389, 22:49 عصر
امیدوارم به دردت بخوره...

alasht
پنج شنبه 10 تیر 1389, 23:39 عصر
آقا خیلی ممنون
واقعا نمی دونم چطور تشکر کنم
میشه بهم بگید کجاش مشکل داشت ؟
چون می خوام یاد بگیرم
بعد می خوام یه دکمه بسازم به اسم ویرایش که بتونم اطلاعاتمو ویرایش کنم و یک دکمه هم به اسم حذف که هر کدوم را خواستم پاک کنم چطوریی میشه اینکارو کرد ؟

mmd2009
پنج شنبه 10 تیر 1389, 23:47 عصر
این کد من :




string select_search = "select * From moshakhasat where ";
if (txt_search_name.Text != string.Empty && txt_search_famil.Text!= string.Empty )
{
select_search += " nam ='" + txt_search_name.Text + "' and famil='" + txt_search_famil.Text + "'";
}
else if (txt_search_name.Text != string.Empty)
{
select_search += " nam ='" + txt_search_name.Text + "'";

}
else
{
select_search += " famil ='" + txt_search_famil.Text + "'";
}




این کد شما :




string select_search = "select * From moshakhasat where ";
if (txt_search_name.Text != string.Empty) {
select_search += " AND nam='" + txt_search_name.Text + "'";
}
if (txt_search_famil.Text != string.Empty)
{
select_search += " AND famil='" + txt_search_famil.Text + "'";
}





ابتدا اینکه به کلمه ابی رنگه توجه کن!!

شما شرط جستجو رو نذاشتید یعنی اینکه اصلا خطای املایی داره برنامه

دوم اینه شما شرط هاتون هم مشکل داره چون هر بار قبل از شرط از and استفاده کردید

ولی استفاده از دو AND موقعی هستش که شما 3 فیلد برای جستجو دارید

ولی شما برای 2 جستجو از 2 and استفاده کردید

و کلا خودت به تیکه کد من و خودت نگاه بکنی اشکالات خودتون رو میبینید

alasht
پنج شنبه 10 تیر 1389, 23:58 عصر
ممنون فهمیدم قضیه چیه
حالا در مورد اون سوال که در مورد دکمه ویرایشش و حذف پرسیدم جواب میدی
یا اصلا خودت برنامشو برام بنویس
واقعا شرمنده
:خجالت:

mmd2009
جمعه 11 تیر 1389, 00:02 صبح
این کد حذف بر اساس فیلد هایی که خودت داری العا ولی شما فیلدها رو تغییر بده




string select_search = "delete from moshakhasat where ";
if (txt_search_name.Text != string.Empty && txt_search_famil.Text!= string.Empty )
{
select_search += " nam ='" + txt_search_name.Text + "' and famil='" + txt_search_famil.Text + "'";
}
else if (txt_search_name.Text != string.Empty)
{
select_search += " nam ='" + txt_search_name.Text + "'";

}
else
{
select_search += " famil ='" + txt_search_famil.Text + "'";
}





کد ویرایش رو خودت بنویس و هر جاش مشکل داشتی بگو

alasht
جمعه 11 تیر 1389, 00:38 صبح
اقا این کدی که برای حذف دادین کار نمیکنه من اسم تکست باکسها رو تو کد درست کردم و مشکلی از اون بابت نداره
میشه یه تست کنید من که هر چی ور رفتم نشد :قلب: