我有下面的方法返回數據集。我正在使用.NET 2.0從DataSet獲取值到一個變量
DataSet ds = GetAllRecords();
我想從每個列中獲取特定行的值並將其綁定到變量。 如何才能實現這一目標?
當前該方法返回表中的所有行,我必須根據ID找到該特定的行。
但是,如果這是不可能的,我可以跟
DataSet ds = GetSpecificRecord(id);
但我仍然需要從每一列獲取值,並將其綁定變量。 請指教。
我有下面的方法返回數據集。我正在使用.NET 2.0從DataSet獲取值到一個變量
DataSet ds = GetAllRecords();
我想從每個列中獲取特定行的值並將其綁定到變量。 如何才能實現這一目標?
當前該方法返回表中的所有行,我必須根據ID找到該特定的行。
但是,如果這是不可能的,我可以跟
DataSet ds = GetSpecificRecord(id);
但我仍然需要從每一列獲取值,並將其綁定變量。 請指教。
// Create a table
DataTable table = new DataTable("users");
table.Columns.Add(new DataColumn("Id", typeof(int)));
table.Columns.Add(new DataColumn("Name", typeof(string)));
table.Rows.Add(1, "abc");
table.Rows.Add(2, "ddd");
table.Rows.Add(3, "fff");
table.Rows.Add(4, "hhh d");
table.Rows.Add(5, "hkf ds");
// Search for given id e.g here 1
DataRow[] result = table.Select("Id = 1"); // this will return one row for above data
foreach (DataRow row in result)
{
Console.WriteLine("{0}, {1}", row[0], row[1]);
}
你可以用LINQ來做到這一點。
DataRow resultRow = ds.Tables["SomeTable"].AsEnumerable().Where(row => row.Field<int>("SomeID") == 1).FirstOrDefault();
對於.NET 2.0及以下
如果你的數據表有定義主鍵,你可以找到行是這樣的:
DataTable table = ds.Tables["SomeTable"];
DataRow row = table.Rows.Find(1);
如果沒有主鍵,你可以指定一個這樣的:
DataTable table = ds.Tables["SomeTable"];
table.PrimaryKey = new DataColumn[] { table.Columns["SomeID"] };
DataRow row = table.Rows.Find(1);
另一種選擇是你se DefaultView的RowFilter屬性,如下所示:
DataTable table = ds.Tables["SomeTable"];
table.DefaultView.RowFilter = "SomeID == 1"; //not sure if it's == or = here
DataRow row = table.DefaultView[0].Row;
最後,還可以使用DataTable.Select()方法查找行。
我感謝你的回答。我使用的是.NET 2.0,我不能使用Lamda表達式。我應該在我的問題中加上這一點。我道歉。 – kalls
這將讓你從0行明顯的價值,你會需要修改多行返回
long id = ds.Tables[0].Rows[0].Field<long>("ID");
你看使用類型化的DataSet?如果您正在查找基於表的主鍵的行,它會自動生成一個方法,讓您通過ID獲取行,並且它將被強類型化,以便您可以按名稱獲取列值。
他們在.Net 2.0中非常方便 - 但LINQ使他們相當過時。
編輯:稍微好一點的參考網址
http://www.c-sharpcorner.com/UploadFile/rupadhyaya/TypedDataSets12032005021013AM/TypedDataSets.aspx
我們可以用這個簡單的方法得到的數據集值:
System.Data.DataSet ds = db.MySelect(
"Fields",
"Table",
"Condition"
);
if (ds != null)
{
if (ds.Tables[0].Rows.Count > 0)
{
object value=Tables[0].Rows[indx]["field name"];
}
}
檢查DataTable.Select方法@ HTTP:// MSDN。 microsoft.com/en-us/library/det4aw50.aspx。在你的表中,它將是'ds.Tables [0] .Select(「」);' –
Chandu