piroozman
شنبه 21 آذر 1388, 16:45 عصر
در یکی از پروژه ها جستجو ها روی DataTable ها انجام می شود. برای این کار ابتدا محتویات DataTabel مورد نظر را داخل یک متغیر از نوع همان DataTable با نام dtProjectCaption کپی می کنم. به کد زیر توجه کنید:
dtProjectCaption = (AgreementDataSet.ProjectCaptionDataTable)
this.agreementDataSet.ProjectCaption.Copy();
حال یک Qury با استفاده از LINQ روی DataTable فوق انجام داده ام. جستجوی مورد نظر روی ستون PlaceCode از جدول dtProjectCation انجام می پذیرد. نوع این ستون Strig است. مقادیر جستجوی مورد نظر را داخل یک متغیر بی نوع با نام queryProjectCaption ریخته ام.
var queryProjectCaption = from q in dtProjectCaption
where q.PlaceCode.Equals("20")
select q;
در نهایت مقادیر موجود در جدول اصلی را خالی می کنم:
this.agreementDataSet.ProjectCaption.Clear();
و با استفاده از یکی از توابع مختص متغیر queryProjectCaption تمامی پرس و جوی حاصل را داخل جدول اصلی خود کپی می کنم:
queryProjectCaption.CopyToDataTable(this.agreement DataSet.ProjectCaption,LoadOption.OverwriteChanges );
حال سئوال اینجاست که با این که می دانم داخل DataTable اصلی یعنی ProjectCaption ستون PlaceCode دارای مقدار 20 است اما پرس و جوی مورد نظر هیچ ردیفی را برای من بر نمی گرداند.
ضمنا وقتی که در Sql یک Query بر همین اساس می نویسم به طوری که انتهای رشته مورد نظر برابر با صفر باشد باز هم هیچ ردیفی بازپس داده نمی شود. به کد زیر توجه کنید:
Select * from projectCaption where PlaceCode like N'%0'
لازم به توضیح است که نوع ستون PlaceCode از نوع nvarchar(10) است.
از کلیه دوستانی که بنده را راهنمایی می نمایند قبلا تشکر می کنم.
dtProjectCaption = (AgreementDataSet.ProjectCaptionDataTable)
this.agreementDataSet.ProjectCaption.Copy();
حال یک Qury با استفاده از LINQ روی DataTable فوق انجام داده ام. جستجوی مورد نظر روی ستون PlaceCode از جدول dtProjectCation انجام می پذیرد. نوع این ستون Strig است. مقادیر جستجوی مورد نظر را داخل یک متغیر بی نوع با نام queryProjectCaption ریخته ام.
var queryProjectCaption = from q in dtProjectCaption
where q.PlaceCode.Equals("20")
select q;
در نهایت مقادیر موجود در جدول اصلی را خالی می کنم:
this.agreementDataSet.ProjectCaption.Clear();
و با استفاده از یکی از توابع مختص متغیر queryProjectCaption تمامی پرس و جوی حاصل را داخل جدول اصلی خود کپی می کنم:
queryProjectCaption.CopyToDataTable(this.agreement DataSet.ProjectCaption,LoadOption.OverwriteChanges );
حال سئوال اینجاست که با این که می دانم داخل DataTable اصلی یعنی ProjectCaption ستون PlaceCode دارای مقدار 20 است اما پرس و جوی مورد نظر هیچ ردیفی را برای من بر نمی گرداند.
ضمنا وقتی که در Sql یک Query بر همین اساس می نویسم به طوری که انتهای رشته مورد نظر برابر با صفر باشد باز هم هیچ ردیفی بازپس داده نمی شود. به کد زیر توجه کنید:
Select * from projectCaption where PlaceCode like N'%0'
لازم به توضیح است که نوع ستون PlaceCode از نوع nvarchar(10) است.
از کلیه دوستانی که بنده را راهنمایی می نمایند قبلا تشکر می کنم.