ورود

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



mohammadian7
یک شنبه 19 تیر 1390, 23:05 عصر
سلام من فرمی برای ثبت اطلاعات کتاب دارم که قسمت خاکستری مربوط به جستجوست برای عملیات ذخیره و حذف و ویرایش
و کل اتفاقات ذخیره حذف و ویرایش در همین فرم اتفاق میفته با تغییر در نمایش دکمه ها البته.
کد زیر برای قسمت btnisbnsearch است.
الان مشکل اینجاست که من برای عملیات حذف و ویرایش قسمت اطلاعات اضافی هر کتاب نمیدونم قسمت cbobooksearch رو چه جوری بر اساس فیلد isbn پر کنم.یعنی کد کتاب رو برای یونیک بودنش اومدم از isbn که جزو اطلاعات اصلی کتابه + _+یه متغیر که زیاد میشه درست کردم. اینجوری جستجوش بر اساس isbn راحت تره.

الان با این کد زیر وقتی txtisbnsearch رو وارد میکنم cbobookcode همه کد های کتابی که تا الان ذخیره شده را نشان میده

private void txtIsbnSearch_TextChanged(object sender, EventArgs e)
{
//cboBookCode.Items.Clear();
cboBookCode.Text = "";
decimal value;
if (!(Decimal.TryParse(txtIsbnSearch.Text, out value)) || txtIsbnSearch.Text.Length==14)
{
SendKeys.SendWait("{BACKSPACE}");
}
else if (txtIsbnSearch.TextLength < 13) {
clearbookinfo();
Isbn.Text = "";
Topic.Text = "";
Title.Text = "";
Publisher.Text = "";
Author.Text = "";
//cboBookCode.Items.Clear();
var hich = new LINQDataContext();
gvMainBook.DataSource = hich;
gvBook.DataSource = hich;

}
else if (txtIsbnSearch.TextLength == 13)
{
var db = new LINQDataContext();
var query = (from x in db.tbl_Mainbooks where txtIsbnSearch.Text == x.Isbn select x);
gvMainBook.DataSource = query;
if (gvMainBook.RowCount > 0)
{
Isbn.Text = gvMainBook.CurrentRow.Cells["Isbn"].Value.ToString();
Author.Text = gvMainBook.CurrentRow.Cells["Auther"].Value.ToString();
Title.Text = gvMainBook.CurrentRow.Cells["Title"].Value.ToString();
Topic.Text = gvMainBook.CurrentRow.Cells["Topic"].Value.ToString();
Publisher.Text = gvMainBook.CurrentRow.Cells["Pid"].Value.ToString();
}
clearbookinfo();
var dbinfo = new LINQDataContext();
var bank = new LINQDataContext();
var q = from t in bank.tbl_Books select new {t.Code };
foreach (var row in q)
cboBookCode.Items.Add(row.Code);
if (cboBookCode.Items.Count == 0)
Code.Text = 1 + "_" + txtIsbnSearch.Text;
else
{
string item = (from x in dbinfo.tbl_Books orderby x.Code descending select x.Code).FirstOrDefault();
int i = Convert.ToInt32(dbinfo.tbl_Books.Max(x => x.Code).Substring(14).ToString());
Code.Text = ++i + "_" + txtIsbnSearch.Text;
}
cboBookCode.Items.Clear();
}
Isbn.Text = txtIsbnSearch.Text;
}

mohammadian7
یک شنبه 19 تیر 1390, 23:25 عصر
http://barnamenevis.org/attachment.php?attachmentid=72279

mohammadian7
چهارشنبه 22 تیر 1390, 01:14 صبح
خط سبز رنگ اطلاعات اصلی کتاب رو نشون میده که در طول زمان تعییر نمیکنه و ثابته.
و خط قرمز رنگ اطلاعات فرعی کتاب رو نشون میده که در هر لحظه ممکنه تغییر کنه.
و قسمت خاکستری مربوط به جستجوست.
روش کار اینطوریه که:
1- کاربر برای ثیت هر کتاب isbn رو داخل قسمت txtisbnsearch جستجو میکنه. دو حالت پیش میاد
اول: کتابی موجود نیست با این isbn پس کدکتاب برایر میشه با isbn_1
دوم: کتابی با این isbn قبلا ثبت شده پس کد کتاب برابر میشه با isbn_i+1
2-وقتی در قسمت txtisbnsearch جستجو میشه باید در قسمت cbobookcode همه کتابهایی که isbn مشترک دارند نشون داده بشن، تابشه عمل ویرایش و حذف رو انجام داد.

لطفا اصول انجام این کار رو برای پیاده سازی این دو حالت توضیح بدید. تا اعضای فروم هم استفاده کنن و با این روش آشنا بشن. ممنون

در ضمن من کد کتاب رو به این صورت میخوام در نظر بگیرم isbn_i آیا درسته