আমার কাছে দুটি কলামের লেখক এবং বুকনামের সাথে ডেটা টেবিল রয়েছে ।
আমি যাচাই করতে চাই যে প্রদত্ত স্ট্রিং মান লেখক ডেটা টেবেলে ইতিমধ্যে উপস্থিত রয়েছে। এটি পরীক্ষা করার জন্য কি পদ্ধতিতে অন্তর্নিহিত রয়েছে, অ্যারের মতো array.contains
?
আমার কাছে দুটি কলামের লেখক এবং বুকনামের সাথে ডেটা টেবিল রয়েছে ।
আমি যাচাই করতে চাই যে প্রদত্ত স্ট্রিং মান লেখক ডেটা টেবেলে ইতিমধ্যে উপস্থিত রয়েছে। এটি পরীক্ষা করার জন্য কি পদ্ধতিতে অন্তর্নিহিত রয়েছে, অ্যারের মতো array.contains
?
উত্তর:
আপনি এর LINQ-to-DataSet
সাথে ব্যবহার করতে পারেন Enumerable.Any
:
String author = "John Grisham";
bool contains = tbl.AsEnumerable().Any(row => author == row.Field<String>("Author"));
আর একটি পদ্ধতির ব্যবহার হ'ল DataTable.Select
:
DataRow[] foundAuthors = tbl.Select("Author = '" + searchAuthor + "'");
if(foundAuthors.Length != 0)
{
// do something...
}
প্রশ্ন: আমরা যদি কলামগুলি
PEPSI
শিরোনামগুলি না জানি এবং আমরা কোনও সারি কলামে কোনও সেল মান বিদ্যমান কিনা তা খুঁজে পেতে চাই ? আমি এটি অনুসন্ধান করতে সমস্ত লুপ করতে পারি তবে এর চেয়ে ভাল উপায় আর কি আছে? -
হ্যাঁ, আপনি এই ক্যোয়ারীটি ব্যবহার করতে পারেন:
DataColumn[] columns = tbl.Columns.Cast<DataColumn>().ToArray();
bool anyFieldContainsPepsi = tbl.AsEnumerable()
.Any(row => columns.Any(col => row[col].ToString() == "PEPSI"));
System.Data.DataSetExtensions
রেফারেন্সে এবং using System.Linq;
ক্লাস ব্যবহার করতে যুক্ত করুন
DataTable.Select
বাক্য গঠনটি সীমিত যেখানে লিনিক্যু সম্পূর্ণ .NET ফ্রেমওয়ার্ক বা কাস্টম পদ্ধতি ব্যবহার করতে পারে। কেবলমাত্র যদি আপনি। নেট 2 এ আটকে থাকেন তবে আপনার ব্যবহার করা উচিত DataTable.Select
, অন্যথায় আমি সর্বদা
tbl.Select()
থাকে তবে অন্যান্য পদ্ধতির চেয়ে নাটকীয়ভাবে দ্রুত।
DataRow rw = table.AsEnumerable().FirstOrDefault(tt => tt.Field<string>("Author") == "Name");
if (rw != null)
{
// row exists
}
আপনার ব্যবহারের ধারাটিতে যুক্ত করুন:
using System.Linq;
এবং যোগ কর :
সিস্টেম.ডাটা.ডাটাসেট এক্সটেনশনস
রেফারেন্স।
আপনার ডেটা টেবিল ব্যবহার করতে সক্ষম হওয়া উচিত e নির্বাচন করুন () পদ্ধতিটি। আপনি এটি আমাদের এটি করতে পারেন।
if(myDataTable.Select("Author = '" + AuthorName.Replace("'","''") + '").Length > 0)
...
সিলেক্ট () ফানসিটন যেখানে স্টেটমেন্টের সাথে মেলে ফলাফলের জন্য ডেটারোজের একটি অ্যারে প্রদান করে।
আপনি ডাটাবেসটিকে আইনম্বেবল হিসাবে সেট করতে এবং মানগুলি বিদ্যমান কিনা তা পরীক্ষা করতে লিনক ব্যবহার করতে পারেন। এই লিঙ্কটি দেখুন
লিনকিউ ডেটাবেটে অন রেকর্ড রয়েছে কিনা তা পরীক্ষা করে দেখুন
প্রদত্ত উদাহরণটি হ'ল
var dataRowQuery= myDataTable.AsEnumerable().Where(row => ...
আপনি যে কোনও সাথে পরিপূরক করতে পারেন
table.Any(t => t.Author == author);