簡體   English   中英

從強類型數據集中返回一行

[英]Return a single row from a Strongly Typed Dataset

在我的C#ASP.Net項目中,我使用xsd數據集鏈接到我的數據庫。 我想創建一個從強類型數據表返回一行的函數,但是在C#中這樣做有點麻煩。 我以前在VB.Net中成功使用以下代碼完成了此操作:

Public Function dr() As DataSet1.UsersRow
    Dim ta As New DataSet1TableAdapters.UsersTableAdapter
    Dim dt As DataSet1.UsersDataTable = ta.GetData
    Return dt.Rows(0)
End Function

我的代碼的C#版本是:

public DataSet1.UsersRow dr()
{
    DataSet1TableAdapters.UsersTableAdapter ta = new DataSet1TableAdapters.UsersTableAdapter();
    DataSet1.UsersDataTable dt = ta.GetData;
    return dt.Rows(0);
}

我收到錯誤“無法將類型'System.Data.DataRow'隱式轉換為'MyProject.DataSet1.UsersRow'。 存在顯式轉換(您是否缺少演員表?)

如何在C#中返回我的強類型行

您應該能夠使用對其進行強類型化

dt[0];

解決方案是在返回行時顯式轉換Rows項:

public DataSet1.UsersRow dr()
{
    DataSet1TableAdapters.UsersTableAdapter ta = new DataSet1TableAdapters.UsersTableAdapter();
    DataSet1.UsersDataTable dt = ta.GetData();
    return (DataSet1.UsersRow)dt.Rows(0);
}

一種更有效的解決方案是按照SELECT TOP 1 ...的方式向tableadapter添加查詢。 FROM用戶,(或更一般而言,添加WHERE子句以返回所需的行。)這樣,您就不會拉回整個表,而只是檢索一行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM