小编shA*_*A.t的帖子

在实体框架中查找给定主键的对象

我有一个表"Customer",它在实体框架中是相应的ORMapping Entity Customer,我想找到一个对应于给定主键的对象.有点像customerobject.getbjectByID()lambda表达式或查询.

.net c# entity-framework system.data.sqlite

7
推荐指数
2
解决办法
2万
查看次数

如何从C#代码中捕获Microsoft Access VBA调试错误?

我有一个C#程序,它打开几个Microsoft Access文件,并从每个文件中执行功能.

本质上,代码看起来像这样:

Microsoft.Office.Interop.Access.Application app =
    new Microsoft.Office.Interop.Access.Application();

app.Visible = true;
app.OpenCurrentDatabase(accessFileFullPath, false, "");

//Call the function
app.Eval(function);
Run Code Online (Sandbox Code Playgroud)

但是,当VBA代码中发生调试错误时,我想将其捕获到我的C#程序中.

不要回答:"在您的VBA程序中捕获错误".由于我不会涉及的原因,这是不可能的.

我过去使用的一种方法是让一个线程间歇性地监视任何Visual Basic Debug窗口的句柄(FindWindowEx Win32函数返回非零值).我不喜欢这种方法,也不想继续使用它.

我找到了这个适用于Microsoft Excel的线程.从本质上讲,它使用的Microsoft.VisualBasic.CallByName()功能显然可以被困在try/catch块中,而无需用户交互.但是,我无法使用Microsoft Access - 主要是因为我无法弄清楚如何使用此命令调用函数/ sub.

任何建议都将真诚地感谢!

编辑:正如我在下面的一个答案中提到的,我尝试Eval()在try/catch块中包装,我的C#程序似乎忽略它,直到用户点击"Microsoft Visual Basic"错误对话框上的"结束"按钮.我不希望任何用户交互,而是想要捕获VBA错误以便在我的C#程序中处理.

c# ms-access vba office-interop

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

存储过程中的分页,排序和过滤(SQL Server)

我正在寻找编写存储过程的不同方法来返回数据的"页面".这是用于ASP ObjectDataSource,但它可以被认为是一个更普遍的问题.

要求是基于通常的寻呼参数返回数据的子集; startPageIndex并且maximumRows,还有一个sortBy允许对数据进行排序的参数.还传递了一些参数来过滤各种条件下的数据.

一种常见的方法似乎是这样的:

[方法1]

;WITH stuff AS (
    SELECT 
        CASE 
            WHEN @SortBy = 'Name' THEN ROW_NUMBER() OVER (ORDER BY Name)
            WHEN @SortBy = 'Name DESC' THEN ROW_NUMBER() OVER (ORDER BY Name DESC)
            WHEN @SortBy = ... 
            ELSE ROW_NUMBER() OVER (ORDER BY whatever)
        END AS Row,
        ., 
        ., 
        .,
    FROM Table1
    INNER JOIN Table2 ...
    LEFT JOIN Table3 ...
    WHERE ... (lots of things to check)
    ) 
SELECT *
FROM stuff 
WHERE (Row …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server stored-procedures

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

将数据从XML读入数组

我有一个XML文件,我在其中保存临时数据(索引和列名),如下所示:

-<NewDataSet> 
    -<USERROWCOL> 
          <COL>2</COL> 
          <Name>Name</Name> 
     </USERROWCOL> 
    -<USERROWCOL> 
          <COL>8</COL> 
          <Name>PDC</Name> 
     </USERROWCOL>
 <NewDataSet>
Run Code Online (Sandbox Code Playgroud)

我想COL用C#读取数组中的所有s,就像它将是一个数组({2, 8}).任何人都可以帮我这个吗?

c# xml arrays

7
推荐指数
2
解决办法
2万
查看次数

OLE DB提供程序即使已注册也未注册错误

我有一台32位Windows 7机器.我试图通过在SQL Server 2012中创建链接服务器来访问Excel工作表.我收到以下错误.

消息7403,级别16,状态1,行1 OLE DB提供程序"Microsoft.ACE.OLEDB.12.0"尚未注册.

当我检查控制面板的程序和功能时,Microsoft Access数据库引擎2010可用.

需要纠正什么才能克服这个错误?

SQL

EXEC sp_addlinkedserver
@server = 'ExcelServer2',
@srvproduct = 'Excel', 
@provider = 'Microsoft.ACE.OLEDB.12.0',
@datasrc = 'D:\MyFTP\Jul19\FAILED\DCSDIM.xlsx',
@provstr = 'Excel 12.0;IMEX=1;HDR=YES;'

SELECT * FROM ExcelServer2...DCSDIM
Run Code Online (Sandbox Code Playgroud)

PROVIDERS

在此输入图像描述

sql-server oledb

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

是否有任何带有示例数据库的公共SQL Server

我研究SQL Server技术,并想尝试连接到远程服务器.

有没有人知道带有样本数据库的公共服务器进行测试?目前谷歌没有帮助我.

sql-server

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

Visual Studio - TFS - 编辑构建定义错误 - 259个字符

我正在尝试编辑现有的构建定义.每当我点击Process时,我都会收到以下错误.

团队基础错误

TF400889:以下路径包含超过允许的259个字符.指定较短的路径.

Team Foundation错误图像

msbuild tfs visual-studio-2012

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

使用'where then Union'或使用'Union then Where'

请记住这两种类型的查询:

--query1
Select someFields
From someTables
Where someWhereClues
Union all
Select someFields
FROM some Tables
Where someWhereClues

--query2
Select * FROM (
    Select someFields 
    From someTables
    Union all 
    Select someFields
    FROM someTables
    ) DT
Where someMixedWhereClues
Run Code Online (Sandbox Code Playgroud)

注意:
在两个查询中,最终结果字段都相同

我想到了第一个.查询更快或性能更好!
但经过一些研究后我对此笔记感到困惑:

SQL Server(作为RDBMS的示例)首先读取整个数据然后查找记录.=>所以在两个查询中所有记录都将读取和搜索.

请帮助我解决我的误解,以及query1和query2之间是否有任何其他差异?


编辑:添加样本计划:

select t.Name, t.type from sys.tables t where t.type = 'U'
union all
select t.Name, t.type from sys.objects t where t.type = 'U'

select * from (
    select t.Name, t.type from sys.tables t
    union …
Run Code Online (Sandbox Code Playgroud)

sql-server performance union rdbms query-performance

7
推荐指数
2
解决办法
1263
查看次数

有效地构造每行中具有唯一数字的方阵

nxn需要使用所需属性构建大小矩阵.

  1. n甚至.(作为算法的输入)
  2. 矩阵应包含整数0n-1
  3. 主对角线应仅包含零,矩阵应对称.
  4. 每行中的所有数字都应该不同.

对于各种n,可能需要任何一种可能的输出.

input
2
output
0 1
1 0
Run Code Online (Sandbox Code Playgroud)

input
4
output
0 1 3 2
1 0 2 3
3 2 0 1
2 3 1 0
Run Code Online (Sandbox Code Playgroud)

现在,我想到的唯一想法是以递归方式强制构建组合并修剪.

如何以迭代的方式有效地完成这项工作?

algorithm math symmetric matrix linear-algebra

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

无法从BsonType"文档"反序列化"List <T>"

我在我的C#MVC应用程序中使用MongoDB Driver 2.3.0并收到此错误:

"无法从BsonType'文档'反序列化'列表'"

在更新后获取数据.
以下是我的代码:

IMongoCollection<Model> objModel = dbHelper.GetCollection<Model>(Model.CollectionName);

var query = Builders<Model>.Filter.And(
    Builders<Model>.Filter.Eq("_id", new ObjectId(Id)),
    Builders<Model>.Filter.Eq("locations.locationid", objLocation.locationid));
var update = Builders<Model>.Update.Set("locations", objLocation.ToBsonDocument());
var result = objModel.UpdateMany(query, update, new UpdateOptions { IsUpsert = true });

if (objLocation.isdefaultlocation)
{
    var lList = (from e in objModel.AsQueryable<Model>()
                 where e._id == ObjectId.Parse(Id)
                 select e.locations).FirstOrDefault();

    lList.Where(i => i.isdefaultlocation == true && i.locationid != objLocation.locationid).ToList()
         .ForEach(s => s.isdefaultlocation = false);

    Model onjO = new Model();
    onjO.locations = lList;
    var query1 = Builders<Model>.Filter.Eq("_id", new ObjectId(Id)); …
Run Code Online (Sandbox Code Playgroud)

c# mongodb mongodb-.net-driver

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