我有两个数据库,一个是MS Access文件,另一个是SQL Server数据库.我需要创建一个SELECT命令,根据Access数据库中的数据过滤SQL Server数据库中的数据.使用ADO.NET实现这一目标的最佳方法是什么?
我可以将每个数据库中的所需数据提取到两个新表中.将它们放在一个数据集中.然后在数据集上执行另一个SELECT命令来组合数据?
附加信息:Access数据库不是永久性的.要使用的Access文件由用户在运行时设置.
这里有一些背景信息来解释为什么有两个数据库.我的公司使用CAD程序来设计建筑物.该程序将CAD模型中使用的材料存储在Access数据库中.每个型号都有一个文件.我正在编写一个程序,为每个模型生成成本信息.这基于存储在SQL Server数据库中的当前材料价格.
我的解决方案
我最终只是将访问数据库中的数据导入SQL Server db中的临时表.执行所有必要的处理然后删除临时表.这不是一个漂亮的解决方案,但它有效.
我已经为仪表板项目创建了一个类,它将保存仪表板上的位置,描述等信息.我目前正在使用一对集合来保存"库"中包含的仪表板项目以及仪表板上显示的那些项目本身.我被要求制作这个仪表板多标签,我的第一个倾向是为每个标签创建一个新的集合.为此,我希望某种类型的数组或集合可以添加许多这些仪表板项集合,因为更多选项卡被添加到仪表板中.
这是可能的,如果是这样,我可以获得一些代码片段来声明这样的集合吗?我已经考虑过使用带有变量的单个集合来显示项目将显示在哪个选项卡中...但是,管理屏幕和库之间的仪表板项目移动的显示和例程当前需要这些单独的集合.
编辑:谢谢你的回答.虽然我发现它们都很有趣但我相信我会选择James解决方案,并将其标记为已接受的答案.
我作为程序员在一家小型数字营销公司工作,我们不是微软的合作伙伴或任何类型(金/银/铜).但是,我们使用.NET.
令我感到困惑的是,我之前的开发人员离开了,他获得了最新Microsoft工具的订阅DVD,交付给公司(Sql Server等).
我认为这不是个人订阅,因为如果是他已经改变了地址.
无论如何,订阅是专业的,我们将这些工具用于商业目的.这是允许的吗?另外,我可以在家里使用我们得到的工具吗?我想在家中使用Windows Server进行开发目的(为我的考试学习它).
谢谢
谢谢你们的建议.
许可证是以我的老板名义注册的,但我认为网络人员已将自己添加为其他用户.
MSDN FAQ说我可以安装多达10个工具实例.我在想如果我在MSDN上使用产品密钥,那么该密钥将永远使用,并且不能安装其他许可证.
我将在前言中说我通常在C#/ .Net中工作.
通常,我使用命名方案将常见的可重用组件放入命名空间,该命名空间将我们的组织和项目特定组件反映到与项目相关联的命名空间中.我这样做的原因之一是我有时会与我所在部门以外的其他人共享我的组件,但在组织内部.特定于项目的命名空间通常以部门的名称或缩写开头.当我在项目之间重用代码时,我通常会将其迁移到一个基于组织的命名空间中.
例如:
UIOWA.DirectoryServices 包含处理Active Directory特定实现的类.
UIOWA.Calendar 包含处理大学主日历的课程.
LST.Inventory.Datalayer 拥有实现Learning Spaces Technology组清单应用程序数据层的类.
我现在正在开展一个项目,这个项目与Unviersity(一个举办慈善活动的学生团体)有着更加模糊的联系,有可能在我们大学以外的地方销售,因此它并不适合进入我的正常命名约定,即部门只是可能使用该项目的许多人的第一个客户.
我倾向于去组织命名路线并为此应用程序创建"组织项目"名称空间.我想听听其他人如何处理这个以及你可能有的任何建议.
谢谢.
另请参阅有关命名空间组织的相关问题.
编辑
我最终创建了org/project命名空间UIOWA.MasterEvent并从那里派生了更多的命名空间.对未来项目的其他意见仍然感兴趣.
我是SVN的新手并且大量使用外部属性.我的PC上有一个存储库,外部属性在名称中有一个硬编码的"localhost",现在给我带来了问题.例如:
/project1/trunk
/shared/trunk
Run Code Online (Sandbox Code Playgroud)
project1/trunk取决于共享文件夹,因此具有svn:// localhost/shared/trunk的svn:externals属性.这与TortoiseSVN一起工作正常,我可以结帐并给我一份副本.project1/trunkshared/trunk
现在我已经将存储库移动到另一个服务器,并且由于显而易见的原因,外部链接不再起作用(TortoiseSVN正在尝试检出svn://localhost/shared/trunk哪些不再存在).
所以我需要更新我的所有外部 - 但我不想硬编码任何机器名称 - 所以我该如何使这项工作?请记住,存储库可能会在某个时刻再次移动.围绕SVN手册,我遇到了^ /语法,所以我尝试了以下内容:
svn:externals shared ^/shared/trunk
Run Code Online (Sandbox Code Playgroud)
这被接受但是当我尝试project1在我的电脑上签出一份副本时,我收到以下错误:
Unrecognized format for the relative external URL 'shared'.
Check the path and/or URL you've entered.
Run Code Online (Sandbox Code Playgroud)
除非我在外部硬编码存储库机器名称,否则我无法使其工作 - 这似乎是一种黑色艺术,所以任何建议都会受到欢迎.
我需要在linux下以1ms的分辨率打开计时器.它用于递增计时器值,而计时器值又用于查看是否应触发各种事件.由于glibc要求,POSIX timerfd_create不是一个选项.我尝试过timer_create和timer_settimer,但我从它们得到的最好的是10ms的分辨率,较小的值似乎默认为10ms的分辨率.根据联机帮助页,Getittimer和setitimer的分辨率为10毫秒.
我现在可以想到的唯一一种做这个计时器的方法是在我的主循环中使用带有CLOCK_MONOTONIC的clock_gettime,如果ms已经通过则测试,如果是,则增加计数器(然后检查是否应该触发各种事件).
有没有比在主循环中不断查询更好的方法呢?推荐的解决方案是什么?
我使用的语言很简单
更新
我使用的是2.6.26内核.我知道你可以在1kHz时中断它,然后POSIX timer_*函数可以编程为1ms,但这似乎不可靠,我不想使用它,因为它可能需要一些新内核系统.一些库存内核似乎仍然配置了100Hz.我需要检测到这一点.该应用程序可能运行在我的系统以外的其他东西:)
我无法入睡1ms因为可能有网络事件我必须做出反应.
我如何解决它 因为它并不重要我只是宣称全局计时器的分辨率为100ms.使用自己的计时器的所有事件必须设置至少100毫秒的计时器到期.我或多或少想知道是否会有更好的方法,因此问题.
为什么我接受了答案 我认为自由空间的答案最好地描述了为什么没有实时Linux系统它是不可能的.
我有一个非常大的C项目,包含许多单独的C文件和标题以及许多贡献者.许多贡献者对makefile和依赖关系没有很强的了解,因此在您可以信任"make"生成正确的输出之前,几乎总是必须"make clean"的问题并不罕见.
如果make需要几分钟,这不会是一个问题,但是现在快速机器上已经有近2个小时了,而且人们开始检查代码在生成时有效,但是它们不会先清理,代码最终会中断构建.在新基线被切断之前,不要问为什么这些没有被构建管理器捕获...
是的,我们不应该让它走到这一步.
是的,我们正在教育我们的开发人员.
像往常一样,我们没有时间停止一切并手工修理.
我认为这些方面有工具:
但是还有什么可以/应该做的来解决这个问题呢?
提前致谢...
-亚当
我们在中西部(东部标准时间)启动并运行服务器的ASP.Net 2.0 Web应用程序.此时,我们所有的客户都与服务器位于同一时区.我们将在亚利桑那州(Mountain Standard Time)在线提供另一台服务器.
我们通过C#codebehind DateTime.UtcNow将所有时间存储在SQL 2005数据库中.
在测试期间,我们遇到了一些时区转换问题.我们的问题是,在网络浏览器中,我们的时间显示的是山地标准时间而不是我们正在测试的时区,即东部标准时间.
当我们输入新信息时,它会以UTC的形式存储在数据库中,但是当我们在浏览器中查看该信息时,它会显示Mountain Standard Time.下面是从数据库中获取UTC值并在浏览器中显示的代码.
lblUpdatedDate.Text = Convert.ToDateTime(dr["UpdatedDate"]).ToLocalTime().ToString();
Run Code Online (Sandbox Code Playgroud)
上面的代码返回服务器所在的Mountain Standard Time,而不是运行浏览器的Eastern Standard Time.我们如何有时间显示用户所在的位置?
我正在使用此处的HTML清理白名单代码:http:
//refactormycode.com/codes/333-sanitize-html
我需要添加"font"标记作为匹配的附加标记,因此我尝试在<img标记检查 后添加此条件
if (tagname.StartsWith("<font"))
{
// detailed <font> tag checking
// Non-escaped expression (for testing in a Regex editor app)
// ^<font(\s*size="\d{1}")?(\s*color="((#[0-9a-f]{6})|(#[0-9a-f]{3})|red|green|blue|black|white)")?(\s*face="(Arial|Courier New|Garamond|Georgia|Tahoma|Verdana)")?\s*?>$
if (!IsMatch(tagname, @"<font
(\s*size=""\d{1}"")?
(\s*color=""((#[0-9a-f]{6})|(#[0-9a-f]{3})|red|green|blue|black|white)"")?
(\s*face=""(Arial|Courier New|Garamond|Georgia|Tahoma|Verdana)"")?
\s*?>"))
{
html = html.Remove(tag.Index, tag.Length);
}
}
Run Code Online (Sandbox Code Playgroud)
除了上面的条件,我的代码几乎与我链接到的页面中的代码相同.当我尝试在C#中测试它时,它会抛出一个异常说" Not enough )'s".我已经多次计算了括号,我通过几个基于Javascript的在线正则表达式测试程序运行表达式,但它们似乎都没有告诉我任何问题.
我在我的正则表达式中遗漏了导致括号逃脱的内容吗?我需要做些什么来解决这个问题?
更新
经过大量的反复试验,我记得这个#标志是正则表达式中的评论.解决这个问题的关键是逃避#角色.万一其他人遇到同样的问题,我已经包括我的修复(只是逃避#标志)
if (tagname.StartsWith("<font"))
{
// detailed <font> tag checking
// Non-escaped expression (for testing in a Regex editor app)
// ^<font(\s*size="\d{1}")?(\s*color="((#[0-9a-f]{6})|(#[0-9a-f]{3})|red|green|blue|black|white)")?(\s*face="(Arial|Courier New|Garamond|Georgia|Tahoma|Verdana)")?\s*?>$
if …Run Code Online (Sandbox Code Playgroud) 给出以下java枚举:
public enum AgeRange {
A18TO23 {
public String toString() {
return "18 - 23";
}
},
A24TO29 {
public String toString() {
return "24 - 29";
}
},
A30TO35 {
public String toString() {
return "30 - 35";
}
},
}
Run Code Online (Sandbox Code Playgroud)
有没有办法将字符串值"18 - 23"转换为相应的枚举值,即AgeRange.A18TO23?
谢谢!