PDA

View Full Version : مبتدی: چگونه از اطلاعات استخراجی از دستور select برای مقایسه در برنامه استفاده کنیم؟



shahriar.shahrashoob
سه شنبه 04 مرداد 1390, 19:49 عصر
خوهشا کمکم کنید.کارم خیلی فوریه.
میخوام یه مولفه از یکی از جداولم بگیرم و اگر اون مولفه برابر 1 بود، یکی از منوهای برنامم را غیرقابل دسترسی کنم.در واقع روی قسمت سطح دسترسیش کارمیکنم.این کد رو نوشتم ولی جواب نمیده!ایراد کجاست؟چیکارکنم؟

SqlDataAdapter da = new SqlDataAdapter("select * from users where users.[user]= " + k, con);
da.SelectCommand.CommandType = CommandType.Text;
DataSet ds = new DataSet();
da.Fill(ds, "users");

if (ds.Tables[0].Rows[0][5].ToString() == "1")
ToolStripMenuItem.Enabled = false
;

یا در قسمت ifنوشتم:

da.SelectCommand.Parameters.Contains("1")

morteza271
سه شنبه 04 مرداد 1390, 20:08 عصر
چک کنید ببینید که خروجی کوئری تون همونی هست که میخواین؟و ستون مورد نظر 5 هستش.اگه به جای ایندکس از نام ستونش استفاده کنید بهتره.
یه نظرم میدم برای راحتی کارتون برای سطح دسترسی ها :
به نظرم ستون های مربوط رو به جای اینکه 1 یا 0 مقداردهی کنید نوع اون ستون رو bit بذارید تا بتونید true و false توش ذخیره کنید و وقتی از دیتابیس خوندید دیگه لاطم نیست شرطی رو چک کنید و فقط میتونید بگین :

ToolStripMenuItem.Enabled = ds.Tables[0].Rows[0][5]
موفق باشید

nilmil_nil
چهارشنبه 05 مرداد 1390, 17:42 عصر
سلام
منم یه راه حل بهتون میگم خالی از لطف نیست
شما تمام سطوح دسترسیتون رو میتونی با 0 یا 1 در یک فیلد ذخیره کنید
بعد یه تابع بنویسد که این 0 1 ها رو استخراج کنه و در متغیر هایی با نام اون سیطح دسترسی ها ذخیره کنه
از اونها استفاده کنید
مثال
شما واسه add edit , del یه فیلد تعرف میکنی و بعد اگه دسترسی داشت مثلا 111 یا 000 یا هر جور که یوزر باید دسترسی داشته باشه
و بعد که استخراج کردین اون ها رو توی متغیر هایی از نوع بوول بریزد و استفاده کنید
اگه سوالی دشاتی خوشحال می شم کمکتون کنم