PDA

View Full Version : جستجو و تشخیص هویت در LINQ



jaykob
سه شنبه 28 دی 1389, 21:47 عصر
من یک پروفایل کاربران دارم که کاربر با ورود یک Session با همون id خودش ایجاد می شه داخل این پروفایل اکثر امکاناتش رو نوشتم فقط برای ویرایش اطلاعاتش من به تعداد فیلد ها text box گذاشتم و می خوام کاربر با ورود خودش اطلاعاتش داخل این پروفایل ها نشون بده و بعد بتونه ویرایش کنه ویرایش رو بلدم داخل LINQ اما اینکه فقط اطلاعات همون کاربری وارد شده رو نشون بده نمی دونم چجوری هستش .

یک قسمت دیگه هم جستجو هست که مدیر بتونه بین کاربران بر حسب 4 فیلد جستجو کنه بدین صورت که یک text box گذاشتم و یک DropDownList که دارای 4 فیلد نام و نام خانوادگی و کد ملی و شماره همراه بتونه جستجو کته و داخل یک GridView یا هر چیز دیگه نشونش بده .

با تشکر

mehran_sh_t
چهارشنبه 29 دی 1389, 10:00 صبح
برای قسمت اول
خوب شما باید بر اساس همون ID که تو session هستش این اطلاعات رو بگیرید از دیتابیس. در ضمن شما چطور اطلاعات یک کاربر رو ویرایش می کنید، ولی نمی تونید اطلاعاتش رو بگیرید؟
من الان رو پروژه ای کار میکنم که همین کار شما رو انجام میدم توش (البته تو LINQ تازه واردم! :) )
اگه ممکنه واضح تر بگید سوالو
برای قسمت دوم هم راحت ترین کار ایمه که با یک switch چهار تا جستجو رو Query هاشونو جدا بنویسید! ولی واسه منم جالب شده. میگردم دنبال راه حلش

jaykob
چهارشنبه 29 دی 1389, 11:37 صبح
برای قسمت اول
خوب شما باید بر اساس همون ID که تو session هستش این اطلاعات رو بگیرید از دیتابیس. در ضمن شما چطور اطلاعات یک کاربر رو ویرایش می کنید، ولی نمی تونید اطلاعاتش رو بگیرید؟
من الان رو پروژه ای کار میکنم که همین کار شما رو انجام میدم توش (البته تو LINQ تازه واردم! :) )
اگه ممکنه واضح تر بگید سوالو
برای قسمت دوم هم راحت ترین کار ایمه که با یک switch چهار تا جستجو رو Query هاشونو جدا بنویسید! ولی واسه منم جالب شده. میگردم دنبال راه حلش

آره دیگه از بی سوادی ماست جناب من این کوئری زدن رو یاد گرفتم . اما این بحث اینکه اطلاعات همون کاربر استخراج و هر کدام با text box مربوطه Bind بشن درگیرم کرده ...

منظورتون رو با Switch فهمیدم اما خوب این quary رو هم زدیم جواب رو به چه شکل در یک grd نشون بدیم یا هر چیز دیگه اگه امکان داره یک بلوک از این Switch رو بنویسید و خروجی رو هم نشون بده ممنون می شم

با تشکر

mehran_sh_t
چهارشنبه 29 دی 1389, 18:31 عصر
در مورد قسمت اول، شما باید یه شیئ user (فرض کنیم اطلاعات کاربرانتون تو users هستش) رو اول بگیری
Users objUser = (from u in DBManager.DB.Users
where u.ID == Int32.Parse(Session["id"].ToString())
select u).First<Users>();
بعد هم که شیئ Users اطلاعات کاربر فعلیو داره دیگه
مقلا txtUsername.text = objUser.Username

mehran_sh_t
چهارشنبه 29 دی 1389, 19:00 عصر
var Items;
switch (cmbField.Text)
{
case "Name":
Items = from item in DBManager.DB.Products
where item.Name == txtFieldValue.Text
select item;
break;
case "CompanyName":
Items = from item in DBManager.DB.Products
where item.CompanyName == txtFieldValue.Text
select item;
break;
}
GridView.datasource = Items.ToList<Item>();

jaykob
پنج شنبه 30 دی 1389, 18:12 عصر
سلام برای Bind کردن مقادیر کاربران به text box ها به یک مشکل برخوردم من کدم رو می زارم تا بهتر بتونید راهنماییم کنید .

این کد صفحه ورود کاربران من هست که بدون مشکل کار می کنه :



public void LoginCheak()
{
string ConnectionString = ConfigurationManager.ConnectionStrings["Mycon"].ConnectionString;
var ctx = new ClassDataContext(ConnectionString);
var quary = (from a in ctx.tbl_users
where
a.user_name == txtUserUserName.Text
&&
a.user_pass == txtUserPass.Text
select a).SingleOrDefault();
if (quary == null)
{
lblUserResult.Visible = true;
}
else
{
Session.Add("UserID", quary.user_id.ToString());
Response.Redirect("Information.aspx");
}
}


و یک صفحه Information.aspx دارم که می خوام اطلاعات هر کاربری که وارد شده با توجه به id داخل text box قرار بگیره و کدی که شما گفتید بر حسب پروژه من به این شکل شد :



protected void Page_Load(object sender, EventArgs e)
{
string ConnectionString = ConfigurationManager.ConnectionStrings["MyCon"].ConnectionString;
ClassDataContext ctx = new ClassDataContext(ConnectionString);
tbl_user objUser = (from u in ctx.tbl_users
where u.user_id == Int32.Parse(Session["UserID"].ToString())
select u).First<tbl_user>();
txtUsercpRealName.Text = objUser.user_realname;
txtUsercpEmail.Text = objUser.user_email;

}


من به این شکل عمل کردم اما بدون هیچگونه اروری صفحه می آد لاگین می کنم اما هیچ اطلاعاتی در textbox ها نیست .

با تشکر

mehran_sh_t
جمعه 01 بهمن 1389, 07:48 صبح
برنامه تون رو دیباگ کنید خوب!
ببینید کجای کار مشکله، اطلاعات رو از Session میخونه؟ کوئری تون درست کار می کنه؟ یکی از این دوتا باید باشه دیگه!