先简单记一下,必须使用合理的type
- <Where>
- <Eq>
- <FieldRef Name='UserAlias' />
- <Value Type='User'>KCao</Value>
- </Eq>
- </Where>
如果第4行中不加Type="user",或者用Type="Text",就查询不出来。
开发一个自动更新文件系统。程序启动时向SharePoint查询有无可更新文件,有的话就启动下载程序下载到临时文件夹。之所以要另用一个下载程序是因为防止下载时用户退出主程序。下载好以后,主程序再次启动时调用另一个升级程序,升级程序复制下载好的文件到相应目录。如果需要复制EXE或者DLL等文件,则升级程序先终止主程序,再复制,然后再重新启动主程序,升级程序自动终止。
遇到的问题是,如果终止了主程序后,DLL仍然被锁定的话,下次升级程序启动主程序仍然不能复制文件成功,就会循环重启主程序,导致错误。
解决方法:
1. 升级程序如果需要更新DLL,则建立一个标记文件,然后杀掉主程序进程后更新。
2. 升级程序检测如果标记文件存在,则表示主程序不要被杀,升级程序继续升级其他文件。
3. 升级程序如果杀掉并重启了主程序,升级程序不自动退出,保持在内存中。
4. 主程序启动时,如果未发现升级程序进程,则表示自身是由用户调用的,则删除标记文件,表示自身可以被升级程序杀掉。相反,若发现升级程序已经在内存中,表示自身是由升级程序所调用,保持标记文件,让升级程序进行2。
5. 主程序然后调用升级程序,正常检测升级。
首先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就是单个文件路径
}
}
刚安装了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"
C#中用如下代码输出Grid到Excel,
- public static Microsoft.Office.Interop.Excel.Application _excelobj = new Microsoft.Office.Interop.Excel.Application();
- public static Workbook _newbook = _excelobj.Workbooks.Add();
- ////...
- 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句前加一个判断即可解决:
- if (_excelobj.ActiveWorkbook == null)
- {
- _newbook = _excelobj.Workbooks.Add();
- }
- Microsoft.Office.Interop.Excel.Worksheet _newsheet = _newbook.ActiveSheet;





