我一直在尝试将一个Entity Framework对象绑定到一个DataGridView,但我一直在追求死胡同,我似乎无法在任何地方找到我的答案.
我可以将整个表(实体)绑定到gridview,它将允许我进行更改并将这些更改保存回DB,如下所示:
WS_Model.WS_Entities context;
private void simpleButton1_Click(object sender, EventArgs e)
{
context = new WS_Entities();
var query = from c in context.Users select c;
var users = query.ToList();
gridControl1.DataSource = users;
}
private void simpleButton2_Click(object sender, EventArgs e)
{
context.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)
但我不想在我的数据库视图中查看数据库中表格中的所有列,所以我尝试这样做...
WS_Entities context = new WS_Entities();
private void simpleButton1_Click(object sender, EventArgs e)
{
var query = from c in context.Users
where c.UserName == "James"
select new { c.UserName, c.Password, c.Description };
var results = query.ToList();
gridControl1.DataSource = results; …Run Code Online (Sandbox Code Playgroud) 我试图使用以下代码使用C#和Exchange Web服务从收件箱中的电子邮件连接和下载附件,但我收到'System.ArgumentOutOfRangeException'错误,我不明白为什么.我已经google了一个答案,但我找不到一个或我找到的答案是非常旧版本的EWS.
我知道其余的代码通常有效,因为我可以访问与电子邮件相关的其他信息,只是不访问附件.
任何人都向我展示了我的方式的错误?
提前致谢,
詹姆士
static void Main(string[] args)
{
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
service.Credentials = new NetworkCredential("MYLOGIN", "MYPASSWORD", "MYDOMAIN");
service.Url = new Uri("https://MYMAILSERVER/EWS/Exchange.asmx");
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.Inbox, new ItemView(1000));
foreach (Item item in findResults.Items)
{
if (item.HasAttachments && item.Attachments[0] is FileAttachment)
{
FileAttachment fileAttachment = item.Attachments[0] as FileAttachment;
fileAttachment.Load("C:\\temp\\" + fileAttachment.Name);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
解决但新问题
我现在通过将'foreach(findResults.Items中的项目项)更改为'foreach(findResults.Items中的EmailMessage项)'来排序问题,但现在我需要找出如何通过附件进行枚举 - 任何人的想法?
我正在摸着这个.我试图使用system.diagnostics从C#运行一个exe,但它没有正确地传递我的参数,所以exe掉了下来.
由于其中的空间,它在"here"(见下文)之后拆分路径.
有没有人知道如何在不重命名目录的情况下解决这个问题(这对我来说不是一个选项)
这可以从命令行工作:
"C:\ Users\me\Desktop\myexternalexe\myexternalexe.exe"注释"\ 192.168.1.1\a \这里是问题\ c\d \"
这不是来自Visual Studio:
Process myexternalexe = new Process();
myexternalexe.StartInfo.FileName = @"C:\Users\me\Desktop\myexternalexe\myexternalexe.exe";
myexternalexe.StartInfo.Arguments = @"comments \\192.168.1.1\a\here is the problem\c\d\";
myexternalexe.Start();
Run Code Online (Sandbox Code Playgroud)