[英]LINQ Query Returning No Value
我目前正在嘗試通過MS SQL數據庫運行LINQ查詢。 這就是我所做的。
在我的代碼中,當我需要查詢時,這就是我的代碼。
MyTableDataSet data = new MyTableDataSet (); var queryResult = from c in data.MyTable select c; foreach (var date in queryResult) { // nothing! }
我對LINQ表達式做錯了嗎? 我猜這是一個“選擇*”。 該表中確實有數據,大約有50行。 也許我需要“填充”數據集? 我正在通過服務器資源管理器使用Windows身份驗證來查看數據。 如果我可以從那里看到它,那么代碼也應該也可以訪問? 不確定。 :|
感謝您為解決此問題可能提供的任何幫助。
根據您的代碼,您正在創建一個新的數據集並立即對其進行查詢。 它當然是空的。
您必須使用在數據集設計器中拖動表格時創建的表格適配器來填充數據集。
這是一個使用DataTable
的工作示例:
var queryResult = from c in data.MyTable select c;
DataTable dt = ToDataTable(yourDataContext, queryResult);
foreach (DataRow dr in dt.Rows)
{
// ...
}
dt.Dispose();
ToDataTable
函數來自此處 :
public DataTable ToDataTable(System.Data.Linq.DataContext ctx, object query)
{
if (query == null)
{
throw new ArgumentNullException("query");
}
IDbCommand cmd = ctx.GetCommand(query as IQueryable);
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = (SqlCommand)cmd;
DataTable dt = new DataTable("sd");
try
{
cmd.Connection.Open();
adapter.FillSchema(dt, SchemaType.Source);
adapter.Fill(dt);
}
finally
{
cmd.Connection.Close();
}
return dt;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.