PDA

View Full Version : سوال: جستجوی پایگاه داده



arefba
چهارشنبه 17 شهریور 1389, 01:18 صبح
بسمه تعالی
با سلام
من از این روش برای جستجو استفاده می کنم ولی بعضی وقت ها بدون دلیل جواب نمیده میشه بگید درسته یا نه و یا رهی بهتر و آسون پیشنهاد بدید.

serch = "";
//موضوع کتاب در نرم افزار ثبت را به لیست باکس تبدیل کن تا کتابدار چیزی غیر طبیعی وارد نکند
if (elComboBox1.Text == "نام کتاب")
serch = "BookName='" + elEntryBox1.Text;
if (elComboBox1.Text == "موضوع کتاب")
serch = "Subject='" + elEntryBox1.Text;
if (elComboBox1.Text == "نام نویسنده")
serch = "author='" + elEntryBox1.Text;


MessageBox.Show(serch);
//fill data grid
SqlConnection conn = new SqlConnection("Data Source=ARE\\AREF;Initial Catalog=Library;Integrated Security=True");
da = new SqlDataAdapter("select * from BookDetails where " + serch +"'" ,conn);
ds = new DataSet();
da.Fill(ds, "BookDetails");
dataGridViewX1.DataSource = ds;
dataGridViewX1.DataMember = "BookDetails";
dataGridViewX1.Columns["IDBook"].Width = 30;
dataGridViewX1.Columns["IDBook"].HeaderText = "#";
dataGridViewX1.Columns["BookName"].HeaderText = "نام کتاب";
dataGridViewX1.Columns["author"].HeaderText = "نویسنده";
dataGridViewX1.Columns["translator"].HeaderText = "مترجم";
dataGridViewX1.Columns["NobatChap"].HeaderText = "نوبت چاپ";
dataGridViewX1.Columns["NobatChap"].Width = 80;
dataGridViewX1.Columns["Entesharat"].HeaderText = "انتشارات";
dataGridViewX1.Columns["Subject"].HeaderText = "موضوع";
dataGridViewX1.Columns["Tozihat"].HeaderText = "توضیحات";
dataGridViewX1.Columns["KholaseKetab"].HeaderText = "خلاصه";
dataGridViewX1.Columns["AksRoyeJeldOriginalPath"].HeaderText = "آدرس عکس";
dataGridViewX1.Columns["ImageData"].HeaderText = "عکس";
dataGridViewX1.Columns["MahaleKetabDarKetabKhane"].HeaderText = "محل کتاب";
dataGridViewX1.Columns["tedad"].HeaderText = "تعداد";
dataGridViewX1.Columns["tedad"].Width = 40;
dataGridViewX1.Columns["tarikhenashr"].HeaderText = "تاریخ نشر";
dataGridViewX1.Columns["Status"].HeaderText = "وضعیت";
--------------------
البته فقط کارکتر های فارسی مشکل داره

vandermond
چهارشنبه 17 شهریور 1389, 02:50 صبح
سلام دوست عزيز
احتمالا براي كاراكتر هاي «ي» و «ك» جواب نميده. درسته؟
اگه اين كاراكتر ها توي بانك عربي باشه و اينجا فارسي و برعكس، جواب نميده. احتمالا توي بانك عربي وارد كردين. بايد دوتاش مثل هم باشه.

arefba
چهارشنبه 17 شهریور 1389, 03:11 صبح
منم میدونم معمولا همه تو این وقت ها چیکار می کنند.

vandermond
چهارشنبه 17 شهریور 1389, 03:40 صبح
دوست عزيز
معمولا ميرد بانك رو درست ميكنن. البته دستي نه:لبخند:.
يا يه چيزي الان به ذهنم خورد ميتوني Replace كني:متفکر:...
اگه اساتيد روش ديگه اي دارن بفرمايند من هم خوشحال ميشم بدونم..

arefba
چهارشنبه 17 شهریور 1389, 03:53 صبح
یعنی چی اونی که جستجو شده رو بزاری تو بانک تا پیداش کنه :لبخند:

Reza_Yarahmadi
چهارشنبه 17 شهریور 1389, 07:58 صبح
معمولا وقتي به صورت زير كد بنويسي مشكلي پيش نمايد البته اگر از پارامتر و عملگر LIKE همزمان استفاده كني مسلما مشكلي پيش نمايد.

serch = "Subject LIKE N'" + elEntryBox1.Text;با پارامتر

da = new SqlDataAdapter();
if (elComboBox1.Text == "نام کتاب")
{
serch = "BookName LIKE @BookName";
da.SelectCommand.Parameters.AddWithValue("@BookName", elEntryBox1.Text);
}
\\....

da.SelectCommand.CommandText = "Select * From BookDetails Where " + serch;