使用C#(WinForms)在DataGridView中显示FQL结果

我有我的FQL查询,我有我的访问令牌。 但是如何使用C#和ASP.NET在GRID VIEW中显示FQL结果?

FQL:

SELECT uid, username, first_name, last_name, friend_count, pic_big FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) 

这是我尝试过的:

  using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Facebook; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { var fb = new FacebookClient("{My Access Token}"); dynamic result = fb.Get("/me"); var name = result.name; MessageBox.Show("Hi " + name); } } } 

我已经意识到数据是从JSON返回的,所以我试图deserialize但现在仍然运气好。

 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Facebook; using System.Dynamic; using Newtonsoft.Json; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { } public class MyFriends { public int uid {get; set;} public string username {get; set;} public string first_name {get; set;} public string last_name {get; set;} public int friend_count {get; set;} public string pic_big {get; set;} } private void button1_Click(object sender, EventArgs e) { var fb = new FacebookClient("2A64ZAIeJVIbdZAxXRZCwYf5Bg27OgZDZD"); var query = string.Format("SELECT uid, username, first_name, last_name, friend_count, pic_big FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())"); dynamic parameters = new ExpandoObject(); parameters.q = query; dynamic results = fb.Get("/fql", parameters); results = JsonConvert.DeserializeObject(results); //MessageBox.Show("Hi " + results); } } } 

C# Winforms解决方案使用您在标题中指定的DataGridView控件。


1) 修改你的MyFriend ,我稍微改了一下

 public class MyFriends { public long uid { get; set; } public string username { get; set; } public string first_name { get; set; } public string last_name { get; set; } public long? friend_count { get; set; } //nullable public string pic_big { get; set; } } 

2)将DataGridView控件添加到您的窗体

3)使用JsonConvertresult.data 反序列 result.data List。 您还应该传递result.data.ToString() ,否则它将提供exception。

4)将新列表绑定DataGridView.Datasource

 var fb = new FacebookClient("accessToken"); var query = string.Format(@"SELECT uid, username, first_name, last_name, friend_count, pic_big FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())"); dynamic parameters = new ExpandoObject(); parameters.q = query; dynamic results = fb.Get("/fql", parameters); List q = JsonConvert.DeserializeObject>(results.data.ToString()); dataGridView1.DataSource = q; 

结果: 在此处输入图像描述