C# 开发积累(1)

 

 

EntityFramework批量增加时报"...请在调用 AcceptChanges 之前,确保键值是唯一的"

http://www.xinglongjian.com/index.php/2012/10/08/entityframeworkacceptchanges/

解决办法:

context.SaveChanges();有三个参数

1:SaveOptions.DetectChangesBeforeSave(在调用savechanges()方法时调用DetectChanges()方法)

2:SaveOptions.AcceptAllChangesAfterSave,(会引起 AcceptAllChanges()方法调用)

3:SaveOptions.None.(文档描述,这个值即便和其他的值一起使用,也不会调用这些方法)

当传入SaveOptions.DetectChangesBeforeSave和SaveOptions.None参数时不会报上面的错误

 

 

集合已修改;可能无法执行枚举操作 for 与foreach

http://blog.csdn.net/tiramisuh/article/details/9045059

解决办法:

  1. for(int i=0;i<CACHE_POOL.Count;i++)
  2. {
  3.     TimeSpan ts = DateTime.Now - CACHE_POOL.Values.ElementAt(i).LastTime;
  4.     if (ts.TotalMilliseconds > cleartime * 60000)
  5.     {
  6.         CACHE_POOL.Remove(CACHE_POOL.Keys.ElementAt(i));
  7.         i--;
  8.     }
  9. }

 

 

c#兼容 PHP中的md5

http://www.cnblogs.com/myjotin/archive/2010/06/12/1757208.html

解决办法:

  1. public static string MD5(string password)
  2. {
  3.     byte[] textBytes = System.Text.Encoding.Default.GetBytes(password);
  4.     System.Security.Cryptography.MD5CryptoServiceProvider cryptHandler;
  5.     cryptHandler = new System.Security.Cryptography.MD5CryptoServiceProvider();
  6.     byte[] hash = cryptHandler.ComputeHash(textBytes);
  7.     string ret = "";
  8.     foreach (byte a in hash)
  9.     {
  10.         if (a < 16)
  11.             ret += "0" + a.ToString("x");
  12.         else
  13.             ret += a.ToString("x");
  14.     }
  15.     return ret;
  16. }

 

 

NET学习总结----在winform中显示html内容

http://www.cnblogs.com/JuneZhang/archive/2011/03/08/1977342.html

解决办法:

  1. private void Test()
  2. {
  3.     WebBrowser w = new WebBrowser();
  4.     w.Parent = this;
  5.     w.Dock = DockStyle.Fill;
  6.     w.DocumentText =
  7.       "<html><body><br><br><br>Please enter your name:<br/>" +
  8.       "<input type='text' name='userName'/><br/>" +
  9.       "<a href='http://www.microsoft.com'>continue</a>" +
  10.       "</body></html>";
  11. }

 

 

ClickOnce部署Winform程序的方方面面

http://www.cnblogs.com/parry/archive/2012/10/30/ClickOnce_Winform_Deployment.html#s2

解决办法:

使用ClickOnce部署的详细讲解

 

html input readonly 和 disable的区别

http://my.oschina.net/junn/blog/109834

解决办法:

Readonly只针对input(text / password)和textarea有效,而disabled对于所有的表单元素都有效,但是表单元素在使用了disabled后,当我们将表单以POST或GET的方式提交的话,这个元素的值不会被传递出去,而readonly会将该值传递出去(readonly接受值更改可以回传,disable接受改但不回传数据)。

 

一般比较常用的情况是:

 

1. 在某个表单中为用户预填了某个唯一识别代码,不允许用户改动,但是在提交时需要传递该值,此时应该将它的属性设置为readonly。

 

2. 经常遇到当用户正式提交了表单后需要等待管理员的信息验证,这就不允许用户再更改表单中的数据,而是只能够查看,由于disabled的作用元素范围大,所以此时应该使用disabled,但同时应该注意的是要将submit button也disabled掉,否则只要用户按了这个按钮,如果在数据库操作页面中没有做完整性检测的话,数据库中的值就会被清除。如果说在这种情况下用readonly来代替disabled的话,若表单中只有input(text / password)和textarea元素,那还是可以的,如果存在其他发元素,比如select,用户可以在重新改写值后按回车键进行提交(回车是默认的submit触发按键)。

 

3. 我们常常在用户按了提交按钮后,利用javascript将提交按钮disabled掉,这样可以防止网络条件比较差的环境下,用户反复点提交按钮导致数据冗余地存入数据库

 

你可能感兴趣的:(C#)