我有一个winforms应用程序加载excel文件进行分析.目前,为了打开excel文件,文件不能在excel中打开,否则当我尝试加载文件时会抛出FileIOException.
我想要做的是允许我的应用程序读取文件,即使它是在excel中打开而不是强迫用户首先关闭工作表.请注意,有问题的应用程序只需要读取文件,而不是写入文件.
这可能吗?
我有一个小类,它包含两个字符串,如下所示:
public class ReportType
{
private string displayName;
public string DisplayName
{
get { return displayName; }
}
private string reportName;
public string ReportName
{
get { return reportName; }
}
public ReportType(string displayName, string reportName)
{
this.displayName = displayName;
this.reportName = reportName;
}
}
Run Code Online (Sandbox Code Playgroud)
我想将此类的实例保存到我的设置文件中,以便我可以执行以下操作:
ReportType reportType = Settings.Default.SelectedReportType;
Run Code Online (Sandbox Code Playgroud)
谷歌搜索似乎表明它是可能的,但似乎没有任何明确的指南可供我遵循.我知道有些序列化是必需的,但不知道从哪里开始.此外,当我进入Visual Studio的"设置"屏幕并单击"类型"列下的"浏览"时,没有选项可以选择包含ReportType类的当前命名空间.
我正在尝试为一个通常需要的数据存储设计数据仓库,这些数据包括财务系统,项目调度系统和无数的科学系统.即许多不同的数据集市.
我一直在阅读数据仓库和流行的方法,如Star Schemas和Kimball方法等,但我找不到答案的一个问题是:
为什么将DW数据集市设计为星型模式而不是单个平面表更好?
当然,事实和属性/维度之间没有连接比对所有维度表进行大量小连接更快更简单吗?磁盘空间不是问题,如果需要,我们只会在数据库中抛出更多磁盘.这些天的星型架构是否略显过时,还是数据架构师的教条?
我们有一个R服务器 (R是一种用于统计分析的编程语言),它基本上采用脚本和csv文件,处理一些数据并将结果作为文本返回.
我需要在R服务器上编写一个服务,以便.net客户端(可能是.Net Windows Forms或ASP.Net)可以连接到R服务器,提交脚本和CSV文件,然后返回结果.
我对可用的许多不同的绑定感到困惑,网络上的信息似乎很稀疏/分散于选择的内容.
另外,最好是在IIS中运行服务,还是作为单独的"命令行"类型监听器服务(后者看起来比IIS更难看,我不知道为什么有人会选择这样做,如果他们可以在IIS中运行它)?
在代码顶部的Silverlight/WPF xaml中,您可以获得命名空间/导入类型声明.我可以很容易地理解这些声明如何指向程序集,以便可以从中加载类型等.我不明白(以及到目前为止我还没有想到的)是这些名称空间在指向网址时如何工作,例如
http://schemas.microsoft.com/winfx/2006/xaml/presentation/toolkit
查看此URL会给我一个错误,所以不告诉我任何事情.
有人可以向我解释App.Config文件中AppSettings和ApplicationSettings部分之间的区别.为什么有两个不同的部分显然做同样的事情?
我有一个Web服务,将数据存储在本地SQL Server 2008数据库中.如果我在我的帐户下运行Web服务,则Web服务可以成功访问数据库.但是,如果我使用DefaultAppPool(IUSR)帐户,则从Web服务访问数据库失败.
如何在SQL Server上设置安全性以允许通过IIS访问特定数据库?
我得到的具体错误消息是:用户'IIS APPPOOL\DefaultAppPool'登录失败
我有一个名字在其中的数据库,如John Doe等.不幸的是,其中一些名字包含像Keiran O'Keefe这样的引号.现在,当我尝试搜索如下名称时:
SELECT * FROM PEOPLE WHERE SURNAME='O'Keefe'
Run Code Online (Sandbox Code Playgroud)
我(可以理解)得到一个错误.
如何防止发生此错误.我正在使用Oracle和PLSQL.
我正在努力解决我一次又一次出现的情况,但我不确定我做事的方式是错误的还是我可以用不同的方式做事.
一个例子:
我有一个Windows窗体,它有一个DataGridView,有一些私有方法来执行datagrid的验证,并解释datagridview上的鼠标右键等.这个窗体本质上是一个"抽象"类,永远不会直接实例化.
然后我从这个基类继承并以各种方式(模板模式)定制它,例如定义datagridview的列和特定于这些列的特定格式化方法等.
当我使用这些类时,基类公共方法构成了我的接口,我可以实例化我想要的特定类型的datagridview,并通过公共接口对其进行操作.可爱.
问题:
主要问题是,您实际上无法将Windows窗体类声明为抽象,而不会导致Visual Studio设计器因为无法实例化这些抽象类而导致抖动.
一些方案:
目前我正在"实现"我想要覆盖的基类中的那些方法:
throw new NotSupportedException();
Run Code Online (Sandbox Code Playgroud)
所以至少如果我忘记覆盖形成我的界面的这些方法之一.这对我来说似乎很臭,我真的不喜欢它.
我玩弄的另一个解决方案是完全取消继承并定义一个接口(例如IMyDataGrid)并在每个datagridview类中实现它(一种策略模式).这里的问题是你失去了代码重用的好处,继承让你意味着你必须创建许多不同的表单,在它们上放一个数据网格视图 - 有效地复制和粘贴相同的代码到每一个.坏.
有没有更好的方法来实现这一目标?
有谁知道如何获取特定SkyDrive文件夹的文件列表?目前我正在使用以下代码片段来尝试获取根SkyDrive文件夹的文件:
var client = new LiveConnectClient(e.Session);
client.GetCompleted += (obj, arg) =>
{
...
}
client.GetAsync("me/skydrive");
Run Code Online (Sandbox Code Playgroud)
但它返回的是一个Result字典,其中包含大量信息但没有文件名列表!
c# ×4
.net ×2
settings ×2
abstract ×1
excel ×1
file-io ×1
iis ×1
namespaces ×1
onedrive ×1
oracle ×1
sql ×1
sql-server ×1
star-schema ×1
wcf ×1
wcf-binding ×1
winforms ×1
xaml ×1