Feb 1

 先简单记一下,必须使用合理的type

XML/HTML Code Copy Code To Clipboard
  1. <Where>  
  2. <Eq>  
  3. <FieldRef Name='UserAlias' />  
  4. <Value Type='User'>KCao</Value>  
  5. </Eq>  
  6. </Where>  

如果第4行中不加Type="user",或者用Type="Text",就查询不出来。

Jan 30

开发一个自动更新文件系统。程序启动时向SharePoint查询有无可更新文件,有的话就启动下载程序下载到临时文件夹。之所以要另用一个下载程序是因为防止下载时用户退出主程序。下载好以后,主程序再次启动时调用另一个升级程序,升级程序复制下载好的文件到相应目录。如果需要复制EXE或者DLL等文件,则升级程序先终止主程序,再复制,然后再重新启动主程序,升级程序自动终止。

遇到的问题是,如果终止了主程序后,DLL仍然被锁定的话,下次升级程序启动主程序仍然不能复制文件成功,就会循环重启主程序,导致错误。

解决方法:

1. 升级程序如果需要更新DLL,则建立一个标记文件,然后杀掉主程序进程后更新。

2. 升级程序检测如果标记文件存在,则表示主程序不要被杀,升级程序继续升级其他文件。

3. 升级程序如果杀掉并重启了主程序,升级程序不自动退出,保持在内存中。

4. 主程序启动时,如果未发现升级程序进程,则表示自身是由用户调用的,则删除标记文件,表示自身可以被升级程序杀掉。相反,若发现升级程序已经在内存中,表示自身是由升级程序所调用,保持标记文件,让升级程序进行2。

5. 主程序然后调用升级程序,正常检测升级。

Jan 22

 首先AllowDrop 属性为true,然后要在DragEnter事件里这么写

        private void Form1_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.Link;
else e.Effect = DragDropEffects.None;
}
这样就可以得到拖到文件的路径了,任意文件
private void Form1_DragDrop(object sender, DragEventArgs e)
{
string[] filePath = (string[])e.Data.GetData(DataFormats.FileDrop);
foreach (string file in filePath )
{
//file就是单个文件路径
}
}
Dec 11

刚安装了SQL SERVER 2008,进入SSMS时以及导入数据时会出错:

Could not load file or assembly 'Microsoft.SqlServer.Diagnostics.STrace, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its dependencies. The system cannot find the file specified.

纠其原因是因为缺少必须的文件,从此http://download.csdn.net/download/cheng518/4103855下载Microsoft.SqlServer.Diagnostics.STrace.DLL的压缩包,把最高版本号的那个DLL解压到本地文件夹中,我把它放在C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE目录下。

然后点击Start Menu --> Programs --> Visual Studio 2010 --> Visual Studio Tools --> Visual Studio Command Prompt (2010) 进入命令行模式,运行如下命令: 

GACUTIL –i “C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Microsoft.SqlServer.Diagnostics.STrace.DLL"

等待一段时间后系统会报告指定的DLL已经注册好。然后再进入SSMS,错误报告消失。

Nov 9

C#中用如下代码输出Grid到Excel,

C# Code Copy Code To Clipboard
  1. public static Microsoft.Office.Interop.Excel.Application _excelobj = new Microsoft.Office.Interop.Excel.Application();  
  2.   
  3. public static Workbook _newbook = _excelobj.Workbooks.Add();  
  4.   
  5. ////...  
  6.   
  7. Microsoft.Office.Interop.Excel.Worksheet _newsheet = _newbook.ActiveSheet;   

在输出后如果关闭了Excel再调用输出,会在上面第7行出现错误 :

The object invoked has disconnected from its clients. (Exception from HRESULT: 0x80010108 (RPC_E_DISCONNECTED))

究其原因,就是因为excel关闭以后,_newbook这个object不存在了。所以,在第7句前加一个判断即可解决:

C# Code Copy Code To Clipboard
  1. if (_excelobj.ActiveWorkbook == null)  
  2. {  
  3.      _newbook = _excelobj.Workbooks.Add();  
  4. }  
  5.   
  6. Microsoft.Office.Interop.Excel.Worksheet _newsheet = _newbook.ActiveSheet;   

 

Tags: , , , ,
分页: 2/20 第一页 上页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]