小编Col*_*lin的帖子

什么是ROWNUM的OracleType

我正在尝试参数化所有现有的sql,但以下代码给我一个问题:

command.CommandText = String.Format("SELECT * FROM({0}) 
       WHERE ROWNUM <= :maxRecords", command.CommandText);
command.Parameters
       .Add("maxRecords", OracleType.Int32).Value = maxRecords;
Run Code Online (Sandbox Code Playgroud)

报告的错误是"ORA-01036:非法变量名称/编号".

我认为这是因为OracleType.Int32不是ROWNUM的正确数据类型.那是什么?

.net c# oracle

7
推荐指数
1
解决办法
4735
查看次数

读取包时出错:graceful-fs\package.json

我最近安装了Node.js,npm,ionic和cordova,如Ionic入门中所述

现在,当我打开Visual Studio项目时,Bower/NPM窗口显示以下错误:

System.AggregateException:发生一个或多个错误.---> Microsoft.NodejsTools.Npm.PackageJsonException:在'C:\ Users\Colin\AppData\Roaming \npm \node_modules\cordova \node_modules \npm \node_modules\graceful-fs\package.json'中读取package.json时出错:读取package.json时出错.该文件可能是可解析的JSON,但可能包含具有重复属性的对象.

这似乎是由于npm包问题.那么我该如何解决这个问题呢?我是否安装了早期版本的Node,npm,cordova或graceful-fs?我该怎么做?

编辑 在Vikas Vats的评论之后,我运行了以下命令:

cordova -v 我被告知我的全球版本是5.3.3

npm uninstall -g cordova

npm install -g cordova@4.3.0

我现在得到报告的相同错误,graceful-fs\package.json但这次它位于不同的位置:

C:\ Users \用户科林\应用程序数据\漫游\ NPM \node_modules \离子\node_modules \离子-APP-LIB \node_modules \离子-科尔多瓦-LIB \node_modules\NPM \node_modules \优美-FS \的package.json

node.js npm cordova ionic

7
推荐指数
1
解决办法
1063
查看次数

如何设置允许迁移的数据库权限

编辑 我找到了解决方案.此问题的详细信息:如何使用不同的连接字符串(但相同的数据库)进行迁移

我创建了一个SQL Server登录名供我的网站使用:

USE Master
CREATE LOGIN website_live 
    WITH PASSWORD = N'ItsASecret', 
    DEFAULT_DATABASE = MyDb, 
    DEFAULT_LANGUAGE = British, 
    CHECK_EXPIRATION = OFF, 
    CHECK_POLICY = OFF
GO
Run Code Online (Sandbox Code Playgroud)

然后我赋予它读写权限:

USE MyDb
CREATE USER website_live 
FOR LOGIN website_live 
    WITH DEFAULT_SCHEMA = dbo

EXEC sp_addrolemember N'db_datareader', N'website_live'
EXEC sp_addrolemember N'db_datawriter', N'website_live'
Run Code Online (Sandbox Code Playgroud)

并在我的连接字符串中使用该登录

一切正常,直到我从Visual Studio发布需要更改架构的数据库迁移(编辑:我的意思是对数据库结构的更改.我并不是说我想要更改网站使用的架构).

我真的不想给网站永久权限来改变数据库.我是否可以创建仅在迁移期间使用的另一个数据库用户?那会安全吗?我该怎么做,只需点击几下就能保持发布的便利性吗?

NB我正在使用Entity Framework迁移.当我从Visual Studio发布网站时,网站会自动在浏览器中打开,如果要运行数据库迁移,则使用网站的凭据运行.

sql-server entity-framework

7
推荐指数
0
解决办法
161
查看次数

DbMigration.Sql 方法:我可以安全地使用“suppressTransaction”参数吗?

当我想要创建或更改存储过程和视图时,我通过将 sql 放入如下语句中来避免“应该是批处理文件中的第一个语句”错误:EXEC

Sql(EXEC('Alter View dbo.Foos As etc'))
Run Code Online (Sandbox Code Playgroud)

这一切都很好,但这确实意味着我必须一直逃避撇号。

我最近意识到DbMigration.Sql方法采用一个名为 的布尔参数suppressTransaction。文档中是这样描述的:

指示 SQL 是否应在用于迁移过程的事务之外执行的值。

所以我在没有使用的情况下对其进行了测试EXEC

例如Sql('Create View dbo.Foos As etc', true);

它有效,但我担心的是这个。如果我在迁移过程中的其他地方犯了错误怎么办?我假设其他所有内容都会回滚,但这个 Sql 不会。我最终会导致数据库处于不确定状态吗?如果这是真的,这个参数有什么用呢?

entity-framework entity-framework-migrations

6
推荐指数
0
解决办法
1040
查看次数

无法加载资源:服务器响应状态为404(未找到)ripple.js

您好我的问题是使用Visual Studio工具开发HTML5中的phonegap应用程序,用于apache cordova https://www.visualstudio.com/en-us/features/cordova-vs.aspx 当我调试应用程序时出错

Ripple ::环境变暖(茶.伯爵灰色.热.)ripple.js(37,13099)

主线程上的同步XMLHttpRequest因其对最终用户体验的不利影响而被弃用.如需更多帮助,请查看http://xhr.spec.whatwg.org/.> ripple.js(50,28958)

无法加载资源:服务器响应状态为404(未找到)ripple.js

感谢您的帮助

ripple cordova visual-studio-cordova visual-studio-2015

6
推荐指数
1
解决办法
9819
查看次数

如何从 .gitignore 中列出的存储库中删除文件而不更改空格

我已经阅读了有关如何使用 git 命令从存储库中删除忽略文件中的文件的信息:将目录添加到 .gitignore 后从远程存储库中删除

我将 Visual Studio 2019 与 Azure DevOps 中的存储库一起使用。我使用了以下步骤:

  1. 从 Git 资源管理器菜单中,“在命令提示符中打开”
  2. git rm -r --cached . 这告诉 git 停止跟踪所有内容,现在我的所有文件在“暂存更改”中显示为已删除,而在“更改”中显示为添加的文件数量较少。这看起来不错。我假设被忽略的文件不会再次添加回来,所以当我提交这些添加时,所有原本应该被忽略的文件都将在服务器上被删除。
  3. 阶段。现在看起来有问题。添加的文件显示为已修改。
  4. 当我在浏览器中查看更改时,按下按钮查看它们的外观:“仅显示前 999 个更改。单击此处加载更多”。我能看到的每个文件都有一个警告:“该文件仅在空白处有所不同”

我猜这与行尾有关,但几乎不可能查看更改。有没有办法阻止我使用这个过程时发生的空白变化?或者扭转空白变化?或者告诉 git 只检查删除?

TLDR 答案来自 VonC):

git rm -r --cached .
git config --global core.autocrlf false
git add --renormalize .
git add .
git commit
Run Code Online (Sandbox Code Playgroud)

git azure-devops visual-studio-2019

6
推荐指数
1
解决办法
123
查看次数

在数据访问层中获取当前用户名的最佳实践是什么?

我们最近将审核添加到了数据库中。一位同事使用触发器将其实现,并要求我在登录网站时调用存储过程。该存储过程将当前用户名和当前oracle会话ID插入表中,以便触发器可以将会话ID映射到用户名。问题是(或曾经)他假设用户的Internet会话已映射到数据库会话。事实并非如此,我们使用连接池,因此oracle会话ID可以映射到许多用户,而不必映射到在该会话上登录的用户。因此,我在数据访问层中创建了一个实用程序方法,该方法在每次插入,更新和删除时都调用他的过程(确保它在同一事务中):

/// <summary>
/// Performs an insert, update or delete against the database
/// </summary>
/// <param name="transaction"></param>
/// <param name="command">The command.</param>
/// <param name="transaction">A transaction, can be null. 
/// No override provided without a transaction, to remind developer to always consider transaction for inserts, updates and deletes</param>
/// <returns>The number of rows affected by the operation</returns>
public static int InsertUpdateDelete(OracleCommand command, OracleTransaction transaction)
{
  if (command == null)
    throw new ArgumentNullException("command", "command is null.");

  OracleConnection connection = null;
  bool …
Run Code Online (Sandbox Code Playgroud)

audit data-access-layer

5
推荐指数
1
解决办法
1612
查看次数

进行http调用时出错:元数据查询失败:

我在WebApi 2项目中有一个BreezeController:

[BreezeController]
public class BreezeController : ApiController
{
    private readonly IBreezeRepository _repo;

    public BreezeController(IBreezeRepository repo)
    {
        _repo = repo;
    }

    [HttpGet]
    public string Metadata()
    {
        return _repo.MetaData;
    }

   [HttpGet]
   public IQueryable<Property> Properties()
   {
      return _repo.Properties;
   }
}
Run Code Online (Sandbox Code Playgroud)

我的客户端应用程序使用此代码来使用数据:

var mgr = new breeze.EntityManager({
    serviceName: "http://localhost:24830/breeze/breeze/"
});

EntityQuery
    .from('Properties')
    .select('ID')
    .using(mgr)
    .execute()
    .then(querySucceeded, _queryFailed);

function querySucceeded(data) {
    return data.results;
}

function _queryFailed(error) {
    alert("Error while making http call: " + error.message);
}
Run Code Online (Sandbox Code Playgroud)

当我运行我的应用程序时 - 它是一个移动应用程序,它在Ripple中打开 - 我可以调试到javascript.它运行到_queryFailed方法,我收到此错误消息:

元数据查询失败:http:// localhost:24830/breeze/breeze/Metadata …

breeze visual-studio-2015 ionic

5
推荐指数
1
解决办法
726
查看次数

尝试添加迁移 - 软件包管理器控制台中的异常:"无法获取EnvDTE.DTE的实例"

我一直在将我的项目迁移到Visual Studio 2015 RC.我还将它重构为单独的项目.现在我需要为实体框架中的模型更改添加迁移,但是一旦打开包管理器控制台,我就会收到以下错误消息:

Set-DefaultScaffolder:无法获取EnvDTE.DTE的实例在C:\ Users ...\Visual Studio 2010\Projects\MyProject\packages\T4Scaffolding.Core.1.0.0\tools\init.ps1:50 char:30

如果我清除控制台并再试一次,我会遇到"遇到异常" - 活动日志中有更多信息.检查活动日志,例外是:

System.ArgumentOutOfRangeException:指定的参数超出了有效值的范围.参数名称:span at Microsoft.VisualStudio.Text.Classification.Implementation.ClassifierTagger.d__1中的NuGetConsole.Implementation.Console.WpfConsoleClassifier.GetClassificationSpans(SnapshotSpan span)中的Microsoft.VisualStudio.Text.SnapshotSpan..ctor(ITextSnapshot快照,跨度范围) .MoveNext()at Microsoft.VisualStudio.Text.Tagging.Implementation.TagAggregator`1.d__1.MoveNext()

我意识到我已经删除了一些我可能不应该拥有的软件包.所以我重新安装了这些:

ModelScaffolding 0.9.2
MvcScaffolding 1.0.9
T4Scaffolding 1.0.8
Run Code Online (Sandbox Code Playgroud)

这似乎已经取消了第二个异常(ArgumentOutOfRangeException).但是,现在当我尝试时,Add-Migration我得到了

Join-Path:无法将参数绑定到参数'Path',因为它为null.在C:\ Users ...\Visual Studio 2010\Projects\MyProject\packages\EntityFramework.6.1.0\tools\EntityFramework.psm1:713 char:27

我尝试卸载并重新安装Entity Framework.我注意到在安装过程中再次显示了Join-Path错误,但是包管理器继续,并报告安装成功.我尝试时仍然出错Add-Migration

然后我在Visual Studio Express 2013中打开了解决方案.我仍然收到初始Cannot get an instance of EnvDTE.DTE错误,但我可以清除控制台窗口,我可以添加迁移 - P!

我还是想摆脱那个错误信息...并使用VS 2015 ......

entity-framework nuget nuget-package visual-studio-2015

5
推荐指数
1
解决办法
590
查看次数

Cordova:使用VS 2017中的--allow-file-access-from-files启动chrome

我正在使用Visual Studio 2017中的cordova应用程序,我正在尝试使用文件插件访问文件系统.不幸的是,当使用"在浏览器中模拟"(使用cordova-simulate)调试应用程序时,这不起作用.

'SecurityError:确定某些文件对Web应用程序内的访问不安全,或者对文件资源进行了太多调用.提出错误.

我想如果必须将'--allow-file-access-from-files'选项传递给chrome,但我不知道怎么做,因为chrome在新窗口中自动启动,我找不到任何配置选项在Visual Studio中.

visual-studio cordova visual-studio-cordova visual-studio-2017

5
推荐指数
0
解决办法
763
查看次数