ashkan1234
پنج شنبه 02 خرداد 1392, 14:06 عصر
سلام چندتاسوال در مورد لینک دارم که تو قسمت سی شارپ مطرح کردم وکسی جواب نداد!
اولی:
چطور میشه یه فیلد که کلید اصلی جدول هم باشه(مثل کد ملی)را با استفاده از لینک ویرایش کرد؟
بنده که هرکاری کردم به فیلدم گیر میده و میگه نمیتونی ویرایش کنی!
اینهم کدهای دکمه ویرایش:var id = (int)gridDr.CurrentRow.Cells["PZK_CodeMelli"].Value;
var rowIndex = gridDr.CurrentRow.Index;
using (var db = new AshkanDataContext())
{
var DR = db.TBL_Pezeshks.Where(c => c.PZK_CodeMelli == id).FirstOrDefault();
if (DR == null) return;
DR.PZK_Name = txtDrName.Text;
DR.PZK_Family = txtDrFamily.Text;
DR.PZK_CodeMelli = Convert.ToInt32(txtDrID.Text);
db.SubmitChanges();
gridDr.DataSource = db.TBL_Pezeshks;
gridDr.Rows[rowIndex].Cells[0].Selected = true;
}
---------------------------------
دومی:
وقتی یک کمبوباکس رو به جدول بیند میکنم!
چطور میشه بجای یکی از فیلدهای جدول دو تاشونو آورد تو کمبوباکس؟
مثلا تو جدولی که نام ونام خانوادگی داریم!
میخوام نام و نام خانوادگی هر دوتاشون تو کمبو باکس بیاد!
ولی کمبو باکس چند ستونه نمیخوام!
بلکه میخوام تو همین کمبو معمولی اینجوری نمایش بده
"نام"+" "+"نام خانوادگی"
تو DisplayMember که اینکارو میکنم ،در کمبو ValueMember رو نمایش میده!
-------------------------------
سومی:
چطور میشه این روال را با دستورات LINQ عملی کرد:
یک فرمی دارم که 6تا تکست باکس داره و در SQL هم 6 فیلد دارم!+یک دکمه!
TEXTSAL
TEXTMAH
TEXTFAMILY
BTN_OK
TEXTN1
TEXTN2
TEXTN3
حالا میخوام وقتی کاربر سه تای اول رو پر کرد و دکمه OK رو زد:
اگر اطلاعات وارد شده در سه تکست باکس، در بانک موجود بود {عینا سه تکست باکس دوم را با اطلاعات آن رکورد پر کند}
اگر اطلاعات وارد شده در سه تکست باکس اول باهم مغایرت داشت {
بروی فامیلی جستجو کند،اگر برای آن شخص اطلاعات ثبت شده بود،آخرین رکورد ثبت شده آن شخص را وارد سه تکست باکس دوم کند!
اگر هم هیچ فیلدی برای شخص ثبت نشده بود مسیج باکس باز شود و اعلام کند!
کلید اصلی هم روی سه تا فیلد اوله!
-----------------------------------
یکم پیچیده است!
سعی کردم خیلی واضح توضیح بدم!
تو VB6 قبلا اینکارو کردم(البته آقای واژدی {قسمت وی بی همین سایت}زحمت کشیدن وکمک کردن)
اولی:
چطور میشه یه فیلد که کلید اصلی جدول هم باشه(مثل کد ملی)را با استفاده از لینک ویرایش کرد؟
بنده که هرکاری کردم به فیلدم گیر میده و میگه نمیتونی ویرایش کنی!
اینهم کدهای دکمه ویرایش:var id = (int)gridDr.CurrentRow.Cells["PZK_CodeMelli"].Value;
var rowIndex = gridDr.CurrentRow.Index;
using (var db = new AshkanDataContext())
{
var DR = db.TBL_Pezeshks.Where(c => c.PZK_CodeMelli == id).FirstOrDefault();
if (DR == null) return;
DR.PZK_Name = txtDrName.Text;
DR.PZK_Family = txtDrFamily.Text;
DR.PZK_CodeMelli = Convert.ToInt32(txtDrID.Text);
db.SubmitChanges();
gridDr.DataSource = db.TBL_Pezeshks;
gridDr.Rows[rowIndex].Cells[0].Selected = true;
}
---------------------------------
دومی:
وقتی یک کمبوباکس رو به جدول بیند میکنم!
چطور میشه بجای یکی از فیلدهای جدول دو تاشونو آورد تو کمبوباکس؟
مثلا تو جدولی که نام ونام خانوادگی داریم!
میخوام نام و نام خانوادگی هر دوتاشون تو کمبو باکس بیاد!
ولی کمبو باکس چند ستونه نمیخوام!
بلکه میخوام تو همین کمبو معمولی اینجوری نمایش بده
"نام"+" "+"نام خانوادگی"
تو DisplayMember که اینکارو میکنم ،در کمبو ValueMember رو نمایش میده!
-------------------------------
سومی:
چطور میشه این روال را با دستورات LINQ عملی کرد:
یک فرمی دارم که 6تا تکست باکس داره و در SQL هم 6 فیلد دارم!+یک دکمه!
TEXTSAL
TEXTMAH
TEXTFAMILY
BTN_OK
TEXTN1
TEXTN2
TEXTN3
حالا میخوام وقتی کاربر سه تای اول رو پر کرد و دکمه OK رو زد:
اگر اطلاعات وارد شده در سه تکست باکس، در بانک موجود بود {عینا سه تکست باکس دوم را با اطلاعات آن رکورد پر کند}
اگر اطلاعات وارد شده در سه تکست باکس اول باهم مغایرت داشت {
بروی فامیلی جستجو کند،اگر برای آن شخص اطلاعات ثبت شده بود،آخرین رکورد ثبت شده آن شخص را وارد سه تکست باکس دوم کند!
اگر هم هیچ فیلدی برای شخص ثبت نشده بود مسیج باکس باز شود و اعلام کند!
کلید اصلی هم روی سه تا فیلد اوله!
-----------------------------------
یکم پیچیده است!
سعی کردم خیلی واضح توضیح بدم!
تو VB6 قبلا اینکارو کردم(البته آقای واژدی {قسمت وی بی همین سایت}زحمت کشیدن وکمک کردن)