从c#桌面形式获得Gmail联系人
本文关键字:Gmail 联系人 桌面 | 更新日期: 2023-09-27 18:16:33
我试图得到Gmail的联系人在c#桌面表单应用程序,我已经使用了谷歌APi为此目的,我想显示Gmail的联系人在gridview按下按钮。但是,当按钮被按下时,网格视图中没有显示任何内容。
代码粘贴在下面。
请让我知道并帮助我解决这个问题。
public class MyClass
{
public int Id { get; set; }
public string Email { get; set; }
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void FetchContactList()
{
// Define string of list
List<string> lstContacts = new List<string>();
// Below requestsetting class take 3 parameters applicationname, gmail username, gmail password. Provide appropriate Gmail account details
RequestSettings rsLoginInfo = new RequestSettings("", "suryabg2000@gmail.com", "XXXXXX");
rsLoginInfo.AutoPaging = true;
ContactsRequest cRequest = new ContactsRequest(rsLoginInfo);
// fetch contacts list
Feed<Contact> feedContacts = cRequest.GetContacts();
// looping the feedcontact entries
try
{
foreach (Contact gmailAddresses in feedContacts.Entries)
{
// Looping to read email addresses
foreach (EMail emailId in gmailAddresses.Emails)
{
lstContacts.Add(emailId.Address);
}
}
// finally binding the list to gridview defined in above step
// dataGridView1.DataSource = lstContacts;
////dataGridView1.DataBind();
////dataGridView1.DataSource = dataGridView1;
// dataGridView1.Show();
}
catch (Exception)
{
MessageBox.Show("Error Please enter the correct credentials","Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
//throw;
}
}
private void button1_Click(object sender, EventArgs e)
{
List<MyClass> lstContacts = new List<MyClass>();
//lstContacts.Add(new MyClass() { Id = 1, Email = "def@gmail.com" });
//lstContacts.Add(new MyClass() { Id = 2, Email = "def@gmail.com" });
//lstContacts.Add(new MyClass() { Id = 3, Email = "ghi@gmail.com" });
dataGridView1.DataSource = new BindingSource(lstContacts, null);
dataGridView1.Show();
}
}
public class MyClass
{
public int Id { get; set; }
public string Email { get; set; }
}
private void button1_Click(object sender, EventArgs e)
{
List<MyClass> lstContacts = new List<MyClass>();
//need to add items to list
lstContacts.Add(new MyClass() { Id = 1, Email = "def@gmail.com" });
lstContacts.Add(new MyClass() { Id = 2, Email = "def@gmail.com" });
lstContacts.Add(new MyClass() { Id = 3, Email = "ghi@gmail.com" });
dataGridView1.DataSource = lstContacts;
dataGridView1.Show();
}
我建议你先通过代码一步,这应该给你一个更好的想法,究竟是什么导致网格视图空结果。这可能是调用Google Contacts API或将数据绑定到gridview控件时出现的问题。
但是仅仅通过查看您的单击事件处理程序,我不禁要问为什么您注释掉了lstContacts。添加行。列表,lstContacts
,仍然是空的,对吗?
另外,我将使用dataGridView1.DataSource = lstContacts
来代替数据绑定。
编辑:这个密码对我来说当然有效。这里显示了3行。
例子:
使用包装类
public class StringValue
{
public StringValue(string s)
{
_value = s;
}
public string Value { get { return _value; } set { _value = value; } }
string _value;
}
List<StringValue> lstContacts = new List<StringValue>();
lstContacts.Add("your email address");
dataGridView1.DataSource = lstContacts;
dataGridView1.Show();
使用数据表
DataTable dt = new DataTable();
dt.Columns.Add("Email Address");
dt.Rows.Add(new object[] { "def@gmail.com" });
dt.Rows.Add(new object[] { "def@gmail.com" });
dt.Rows.Add(new object[] { "def@gmail.com" });
dataGridView1.DataSource = dt;
dataGridView1.Show();
我已经用下面提到的代码将gmail的联系人获取到c#桌面应用程序。为此使用了GOOGLE API !!正确的工作代码与数据集粘贴在下面。
public class MyClass
{
public int Id { get; set; }
public string Email { get; set; }
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void fetchContactList()
{
// Define string of list
List<string> lstContacts = new List<string>();
// Below requestsetting class take 3 parameters applicationname, gmail username, gmail password. Provide appropriate Gmail account details
RequestSettings rsLoginInfo = new RequestSettings("", textBox1.Text, textBox2.Text);
rsLoginInfo.AutoPaging = true;
ContactsRequest cRequest = new ContactsRequest(rsLoginInfo);
// fetch contacts list
Feed<Contact> feedContacts = cRequest.GetContacts();
//dataGridView1.ColumnCount = 1;
//dataGridView1.Columns[0].Name = "Product ID";
// looping the feedcontact entries
try
{
// dataGridView1.Columns.Add("Name", "Name");
RichTextBox rtb = new RichTextBox();
string email = "";
DataTable dt = new DataTable();
dt.Columns.Add("Email Address");
foreach (Contact gmailAddresses in feedContacts.Entries)
{
// Looping to read email addresses
foreach (EMail emailId in gmailAddresses.Emails)
{
dt.Rows.Add(new object[] {email=emailId.Address});
dataGridView1.DataSource = dt;
}
dataGridView1.Show();
}
}
catch (Exception)
{
MessageBox.Show("Error Please enter the correct credentials","Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
//throw;
}
}
private void button1_Click(object sender, EventArgs e)
{
fetchContactList();
}
}
}