[英]display data from database in datagridview with entity framework in c#
我使用Empty Web Application作為主機,並且具有不同的類,例如其中的用戶。
我也有一個客戶端(Windows Forms應用程序)。 請注意,這是實體框架數據庫!
好的,這就是事情。 我想在datagridview中顯示每個數據(ID,名稱等的單獨列...)
在我的Empty Web應用程序中,我具有Webservice,其中包含用於顯示用戶的代碼。
這是代碼
[WebMethod]
public List<string> getUsers()
{
List<string> userList = new List<string>();
using (var db = new Database())
{
var query = from x in db.userList
orderby x.UserID
select x;
foreach (var user in query)
{
userList.Add(user.userID + user.Name); //also some other information, but doesnt really matter here
}
}
return userList;
}
好的,轉到Windows Forms App(客戶端)。
現在,我需要在datagridview中顯示此數據(在單獨的列中),這意味着:
在ID列中顯示userID在名稱列中顯示名稱
這是發生問題的地方。 所有數據都顯示在每一列中。 USERID +名稱欄顯示在ID列中
我的密碼
ServiceReference1.mojWebServiceSoapClient client = new ServiceReference1.mojWebServiceSoapClient();
var userL = client.pridobiUporabnike();
foreach (string user in userL)
{
string[] row = new string[6];
row[0] = user;
row[1] = user;
row[2] = user;
row[3] = user;
row[4] = user;
row[5] = user;
dataGridView1.Rows.Add(row);
}
您會說“當然,當您到處都有“用戶”時,它會顯示相同的數據。我知道...我嘗試了很多事情,但是以某種方式我無法使其正常工作。
我認為代碼應類似於row [0] = user.UserID; 第1行= user.Name;
你們能幫我解決這個問題嗎,我會很感激
非常感謝提供輸入的任何人。
我還包括了運行程序的結果。
您將返回一個列表,每個用戶只能包含一個值,在這種情況下,您正在為該屬性分配id和name字段。
您應該包含一個單獨的類,該類將根據您的要求填充值,然后返回該類的列表或集合。
[DataContract]
public class Userdata
{
public Userdata(int id, string name, string surname, string number, string mobile, string email)
{
this.Id = id;
this.Name = name;
this.Surname = surname;
this.Number = number;
this.Mobile = mobile;
this.Email = email;
}
[DataMember]
public int Id { get; set; }
[DataMember]
public string Name { get; set; }
[DataMember]
public string Surname { get; set; }
[DataMember]
public string Number { get; set; }
[DataMember]
public string Mobile{ get; set; }
[DataMember]
public string Email{ get; set; }
}
public List<Userdata> getUsers()
{
var userList = new List<Userdata>();
using (var db = new Database())
{
var query = from x in db.userList
orderby x.UserID
select x;
foreach (var user in query)
{
userList.Add(new Userdata(user.id, user.name, user.surname, user.number, user.mobile, user.email));
}
}
return userList;
}
我認為這個小例子可以使您朝正確的方向前進。
我看到您正在使用Web服務,然后應該使用一些屬性裝飾dto(數據傳輸對象)類。 請參閱UserData類上的屬性。
最后,對於您的客戶端代碼,盡管有很多方法可以設置數據網格,但我會堅持使用您目前擁有的方法。 更改后,您應該能夠如下設置網格。
var userL = client.pridobiUporabnike();
foreach (string user in userL)
{
string[] row = new string[2];
row[0] = user.Id;
row[1] = user.Name;
dataGridView1.Rows.Add(row);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.