چگونه اطلاعات در زمان نمایش به صورت صحیح نمایش دهیم
با سلام
با استفاده linq یک دستور سلکت نوشته ام و در نظر دارم اطلاعات تمام رکودهای دیتابیس در گریدویو نمایش دهم
اما در زمان ذخیره اطلاعات در دیتابیس اطلاعات را به صورت Encode ذخیره کرده ام چگونه می توان در زمان سلکت اطلاعات با linq رکودها به صورت decrypt تبدیل کرد و در گریدویو نمایش داد
نقل قول: چگونه اطلاعات در زمان نمایش به صورت صحیح نمایش دهیم
با سلام.
از رویداد CellFormatting استفاده کنید.
نقل قول: چگونه اطلاعات در زمان نمایش به صورت صحیح نمایش دهیم
در کوئری از Select new استفاده کنید و در اون عمل Decrypt را انجام بدید.
var query = from t in db.tbl
select new
{
name = Decrypt(t.EncryptedData)
};
نقل قول: چگونه اطلاعات در زمان نمایش به صورت صحیح نمایش دهیم
نقل قول:
نوشته شده توسط
Mahmoud.Afrad
در کوئری از Select new استفاده کنید و در اون عمل Decrypt را انجام بدید.
var query = from t in db.tbl
select new
{
name = Decrypt(t.EncryptedData)
};
از دستور استفاده شد اما در زمان نمایش اطلاعات خطا زیرنمایش داده می شود
LINQ to Entities does not recognize the method 'System.String GetDecryptedData(System.String)' method, and this method cannot be translated into a store expression.
نقل قول: چگونه اطلاعات در زمان نمایش به صورت صحیح نمایش دهیم
میتونی متد مورد نظر رو بصورت یک extension method بنویسی.
کد کوئری و متد رو بزار.
نقل قول: چگونه اطلاعات در زمان نمایش به صورت صحیح نمایش دهیم
protected void Button2_Click(object sender, EventArgs e)
{
ModelContainer mashin = new ModelContainer();
var fr = (from v in mashin.cars select new { p = GetDecryptedData(v.color), rr = GetDecryptedData(v.name) });
GridView1.DataSource = fr;
GridView1.DataBind();
}
public string GetDecryptedData(string Data)
{
byte[] dEC_data = Convert.FromBase64String(Data);
string dEC_Str = ASCIIEncoding.ASCII.GetString(dEC_data);
return dEC_Str;
}
نقل قول: چگونه اطلاعات در زمان نمایش به صورت صحیح نمایش دهیم
این کلاس رو به پروژه اضافه کن:
static class MyExtensionMethods
{
private static string GetDecryptedData(string Data)
{
byte[] dEC_data = Convert.FromBase64String(Data);
string dEC_Str = ASCIIEncoding.ASCII.GetString(dEC_data);
return dEC_Str;
}
public class CustomCar
{
public string Color { get; set; }
public string Name { get; set; }
}
public static IEnumerable<CustomCar> GetDecryptedData(this IEnumerable<car> source)
{
return (from s in source
select new CustomCar
{
Name = GetDecryptedData(s.name),
Color = GetDecryptedData(s.color)
}).ToList();
}
}
به صورت زیر ازش استفاده کن:
protected void Button2_Click(object sender, EventArgs e)
{
ModelContainer mashin = new ModelContainer();
var fr = mashin.cars.GetDecryptedData();
GridView1.DataSource = fr;
GridView1.DataBind();
}