小编Mat*_*hew的帖子

如何使用 odbc 执行“Select * from”查询

我在 R 中使用odbc 包,我有一个 SQL Server 数据库,其中有一个表,该表有一Name列是整数nvarchar(max),一PublishStatus列是整数。

此代码不起作用:

library(odbc)
library(DBI)
library(tidyverse)
con_string="Driver=ODBC Driver 11 for SQL Server;Server=myServer; Database=MyDatabase; trusted_connection=yes"
con=dbConnect(odbc::odbc(), .connection_string =con_string)
query="select * from MyTable"
result=NULL
result=dbSendQuery(con,query) %>% dbFetch
head(result)
Run Code Online (Sandbox Code Playgroud)

它只会产生错误信息

result_fetch(res@ptr, n, ...) 错误:nanodbc/nanodbc.cpp:2890: 07009: [Microsoft][ODBC Driver 11 for SQL Server]无效的描述符索引

如果我再次尝试查询,我会收到一条不同的错误消息,并且我可以告诉您,如果不关闭 R 并重新打开,就无法恢复:

错误:'select PublishStatus,Name from MyTable' nanodbc/nanodbc.cpp:1587: HY000: [Microsoft][ODBC Driver 11 for SQL Server]Connection is busy with results for another command

因为 R 和 R 的 odbc 都非常命名,所以很难在这个包中用谷歌搜索错误。在 …

sql-server odbc r

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

如何从 .Net Core 中的单独类库中获取经过身份验证的用户

我有一个引用 .NET Core 类库的 MVC 核心应用程序。所有的数据访问和业务逻辑都在类库中。如何从类库访问经过身份验证的用户?

过去使用 .NET Framework 您可以使用

string UserName = System.Web.HttpContext.Current.User.Identity.Name
Run Code Online (Sandbox Code Playgroud)

从类库中的方法内部获取用户名。在 .NET Core 中,似乎HttpContext不再具有CurrentorUser属性。

这是一个简单的用例。假设我有一个数据实体和服务,它在将实体保存到数据库之前用日期和用户名“标记”实体。

这些将在外部类库中:

public interface IAuditable{
    DateTime CreateDate{get;set;}
    string UserName{get;set;}
}

public class MyEntity:IAuditable{
    public int ID{get;set;}
    public string Name{get;set;}
    public string Information{get;set;}
}

public static class Auditor{
    public static IAuditable Stamp(IAuditable model){            
        model.CreateDate=DateTime.UtcNow;
        model.CreatedBy=System.Web.HttpContext.Current.User.Identity.Name;
        return model;
    }
}

public sealed class MyService:IDisposable{
    MyDb db=new MyDb();
    public async Task<int> Create(MyEntity model){
        Auditor.Stamp(model);
        db.MyEntities.Add(model);
        return await db.SaveAsync();
    } …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc asp.net-core-mvc .net-core asp.net-core

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

如何从代码块内部渲染 markdown?

使用 knit 在 R markdown 中实现此伪代码的正确方法是什么?假设这些是文件 test.rmd 的内容

---
title: "Test"
output: html_document
---    

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```    

## R Markdown Loop example    

```{r cars}
for(i in 1:nrow(cars)){
    ### Car {i}
    Car {i} has a speed of {cars$speed[i]} miles per hour and a stopping distance of {cars$dist[i]} feet. 
}
```
Run Code Online (Sandbox Code Playgroud)

显然这不会运行,因为我的代码块不是有效的 R。但目标是让这个 for 循环产生类似于以下 markdown 的结果,它像平常一样编译为 pdf 或 html:

## R Markdown Loop example

### Car 1
Car 1 has a speed of 4 miles per hour …
Run Code Online (Sandbox Code Playgroud)

r knitr r-markdown

4
推荐指数
1
解决办法
496
查看次数

Database.ExecuteSqlCommand的返回值是什么?

稍微修改一下这个问题的答案,假设我运行这段代码:

public int SaveOrUpdate(MyEntity entity)
{
    var sql =  @"MERGE INTO MyEntity
                USING 
                (
                   SELECT   @id as Id
                            @myField AS MyField
                ) AS entity
                ON  MyEntity.Id = entity.Id
                WHEN MATCHED THEN
                    UPDATE 
                    SET     Id = @id
                            MyField = @myField
                WHEN NOT MATCHED THEN
                    INSERT (Id, MyField)
                    VALUES (@Id, @myField);"

    object[] parameters = {
        new SqlParameter("@id", entity.Id),
        new SqlParameter("@myField", entity.myField)
    };
    return context.Database.ExecuteSqlCommand(sql, parameters);
}
Run Code Online (Sandbox Code Playgroud)

这将实际运行并返回一个 int 。int 是什么意思?文档只是

执行命令后数据库返回的结果。

我做了几个测试,看起来如果修改了一行,则为 1;如果没有任何更改,则为 0。返回值是修改的行数吗?

c# sql sql-server entity-framework

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

是否有一种简单的方法来处理LINQ到实体查询中的重音符号

假设我有可汗的数据库。我可以使用此实体框架代码按名称提取可汗

Khan khan=context.Khans.Where(x=>x.Name.Contains("Öge")).Single();
Run Code Online (Sandbox Code Playgroud)

问题在于,在实践中,用户将键入“ Oge”而不是“Öge”,并且不会获得任何匹配项。有没有一种简单的方法可以解决这个问题,以便带有重音符号的字母始终算作没有重音的字母进行搜索?

我发现了这样的问题该问题为该方法提供了解决方案,Compare但我似乎无法将其用于数据库查询:

string.Compare(s1, s2, CultureInfo.CurrentCulture, CompareOptions.IgnoreNonSpace);
Run Code Online (Sandbox Code Playgroud)

c# sql linq-to-entities entity-framework

2
推荐指数
1
解决办法
334
查看次数

如何使用readxl跳过第二行

我得到了一个excel电子表格:列名位于第一行,垃圾文本位于第二行,实际数据始于第三行。我想使用readxl包将其读入数据帧,保留第一行的列名,但丢弃第二行。

简单地将所有行读入数据框然后删除第一行将不起作用,因为excel文件第二行中的垃圾与该列的数据类型不匹配。

我想要一种无需手动编辑excel文件的方法。

excel r readxl

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

如何从年、月和日的整数值初始化 R 中的日期

我将年、月和日作为单独的数值并想创建一个日期对象。在像 C# 或 javascript 这样的大多数语言中,我可以做类似的事情

let x=new Date(2010,11,19);
Run Code Online (Sandbox Code Playgroud)

初始化日期。什么是 R 等价物?显然我可以做到

as.Date(paste0(year,'-',month,'-',day))
Run Code Online (Sandbox Code Playgroud)

但是为了转换为日期而转换为字符似乎毫无意义,对吧?当然有办法减少不必要的额外字符串转换吗?

r

2
推荐指数
1
解决办法
82
查看次数