小编Cha*_*rns的帖子

如何使用Dapper执行插入并返回插入的标识?

如何对数据库执行插入并使用Dapper返回插入的标识?

我尝试过这样的事情:

string sql = "DECLARE @ID int; " +
             "INSERT INTO [MyTable] ([Stuff]) VALUES (@Stuff); " +
             "SELECT @ID = SCOPE_IDENTITY()";

var id = connection.Query<int>(sql, new { Stuff = mystuff}).First();
Run Code Online (Sandbox Code Playgroud)

但它没有用.

@Marc Gravell谢谢你的回复.我已经尝试过你的解决方案但是,下面仍有相同的异常跟踪

System.InvalidCastException: Specified cast is not valid

at Dapper.SqlMapper.<QueryInternal>d__a`1.MoveNext() in (snip)\Dapper\SqlMapper.cs:line 610
at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
at Dapper.SqlMapper.Query[T](IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Boolean buffered, Nullable`1 commandTimeout, Nullable`1 commandType) in (snip)\Dapper\SqlMapper.cs:line 538
at Dapper.SqlMapper.Query[T](IDbConnection cnn, String sql, Object param) in (snip)\Dapper\SqlMapper.cs:line 456
Run Code Online (Sandbox Code Playgroud)

c# sql-server dapper

161
推荐指数
4
解决办法
9万
查看次数

Dapper&TransactionScope?

我刚开始玩Dapper.到目前为止,我喜欢它.小巧玲珑不适用TransactionScope吗?我注意到,即使我从不打电话,TransactionScope.Complete我的更改仍然会提交到数据库.如果现在不支持TransactionScope,是否有任何计划支持它?如果没有那么你必须使用传统的事务管理(System.Transactions.Transaction)?

更新:我刚刚通过Twitter与Sam谈过.它应该工作.我将在明天上午(工作中)更新它的详细信息,看看是否有人可以弄清楚为什么我的更改仍然被提交到数据库,即使我从未调用完成.

transactionscope dapper

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

MVC Bundling和CSS相对URL

使用CssRewriteUrlTransform时,MVC的捆绑在CSS图像中返回错误的URL:

我有一个内联网应用程序,其URL是,例如:http://usid01-srv002/MyApplication.它位于IIS的"默认网站"中.

其中包含以下内容BundleConfig.cs:

bundles.Add(new StyleBundle("~/bundles/jcss")
    .Include("~/Scripts/JQueryUI/css/*.css", new CssRewriteUrlTransform())
);
Run Code Online (Sandbox Code Playgroud)

捆绑系统为这些CSS文件中引用的任何图像生成错误的URL,从而产生404甚至JQueryUI经过良好测试的CSS文件(来自FireBug):

错误生成的URL导致404错误

例如,它正在产生

http://usid01/path/foo.png
Run Code Online (Sandbox Code Playgroud)

什么时候应该生成:

http://usid01/MyApplication/path/foo.png
Run Code Online (Sandbox Code Playgroud)

如何让捆绑系统生成指向正确位置的URL?

css asp.net-mvc relative-path bundling-and-minification asp.net-mvc-5

45
推荐指数
3
解决办法
4万
查看次数

SQL - 插入行并返回主键

我有点诙谐的问题.比如说,我在一个存在主键的表中插入了一些包含一些数据的行.如何"选择"刚刚插入的行的主键?

我应该更具体,并提到我目前正在使用SQLite.

sql sqlite row insert primary-key

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

ORA-01008:并非所有变量都绑定.他们受约束

我遇到了一个Oracle问题,到目前为止我无法找到原因.下面的查询适用于Oracle SQL开发人员,但在.NET中运行时会抛出:

ORA-01008:并非所有变量都绑定

我试过了:

  • 更改lot_priority(Varchar2或int32)的Oracle数据类型.
  • 更改lot_priority(string或int)的.NET数据类型.
  • 一个绑定变量名称在查询中使用两次.这在我在其他查询中不是一个问题,它在多个位置使用相同的绑定变量,但只是为了确保我尝试使用另一个名称将第二个实例作为自己的变量并单独绑定它.
  • 几种不同的绑定变量的方法(参见注释代码;还有其他).
  • 移动bindByName()调用.
  • 用文字替换每个绑定变量.我有两个独立的变量导致问题(:lot_pri和:lot_priprc).在两者之间我记不起一些小的变化.更改为文字使查询起作用,但它们确实需要使用绑定.

查询和代码如下.变量名已被更改以保护无辜者:

SELECT rf.myrow floworder, rf.stage, rf.prss,
rf.pin instnum, rf.prid, r_history.rt, r_history.wt
FROM
(
    SELECT sub2.myrow, sub2.stage, sub2.prss, sub2.pin, sub2.prid
    FROM (
        SELECT sub.myrow, sub.stage, sub.prss, sub.pin,
            sub.prid, MAX(sub.target_rn) OVER (ORDER BY sub.myrow) target_row
            ,sub.hflag
        FROM (
            WITH floc AS 
            (
                SELECT flow.prss, flow.seq_num
                FROM rpf@mydblink flow
                WHERE flow.parent_p = :lapp
                AND flow.prss IN (
                    SELECT r_priprc.prss
                    FROM r_priprc@mydblink r_priprc
                    WHERE priprc = :lot_priprc
                )
                AND rownum = 1
            )
            SELECT …
Run Code Online (Sandbox Code Playgroud)

c# data-binding oracle oracle9i ora-01008

27
推荐指数
3
解决办法
11万
查看次数

Oracle SQL - max(),带有NULL值

我有一个表有一系列基于时间的事件,每个事件都有一个开始和结束日期.对于最近(当前)事件,结束日期为NULL.我试图折叠重复的行,只显示最早的开始日期和最新的结束日期.如果NULL位于日期字段中,则忽略该行.我可以使用NVL()来设置结束日期值,但这会导致前端逻辑搜索并替换该值.

反正有没有让max()函数将NULL排序为高?

CREATE TABLE CONG_MEMBER_TERM
(
  CONG_MEMBER_TERM_ID  NUMBER(10)               NOT NULL,
  CHAMBER_CD           VARCHAR2(30 BYTE)        NOT NULL,
  CONG_MEMBER_ID       NUMBER(10)               NOT NULL,
  STATE_CD             CHAR(2 BYTE)             NOT NULL,
  DISTRICT             NUMBER(10),
  START_DT             TIMESTAMP(6) WITH TIME ZONE,
  END_DT               TIMESTAMP(6) WITH TIME ZONE
)
Run Code Online (Sandbox Code Playgroud)

此查询有效,但会删除结束日期为NULL的行.

select CONG_MEMBER_ID, 
       district, 
       min(start_dt), 
       max(end_dt)
  from CONG_MEMBER_TERM
 where CONG_MEMBER_ID = 1716
 group by CONG_MEMBER_ID, district;
Run Code Online (Sandbox Code Playgroud)

此查询修复了该问题,但现在我有一个"虚拟"结束日期值(9/9/9999).我宁愿不用编码的东西.

select CONG_MEMBER_ID, 
       district, 
       min(start_dt), 
       max(nvl(end_dt, to_date('9/9/9999', 'mm/dd/yyyy')))
  from CONG_MEMBER_TERM
 where CONG_MEMBER_ID = 1716
 group by CONG_MEMBER_ID, district;
Run Code Online (Sandbox Code Playgroud)

谢谢.

sql oracle null

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

INSERT IF NOT NOT EXISTS但以任何方式返回身份

我有3个表:audioFormats,videoFormats和fileInfo.我有一个事务,当我插入fileInfo表时,该插入包括来自audioFormats和videoFormats的FK.如果音频格式或视频格式不在这些表中,则插入到后面的表中,然后将生成的(或现有的)ID值插入到fileInfo中.

如何仅在该值不存在时才有效地插入值,但是获取值的ID是否已经存在或仅使用SQL(可能是事务)重新插入.

我可以插入一个值,如果它尚不存在:

INSERT INTO audioformats (audioformat)
VALUES(@format)
WHERE NOT EXISTS (SELECT 1 FROM audioformats WHERE audioformat = @format)
Run Code Online (Sandbox Code Playgroud)

我可以从插入中获取插入的ID:

INSERT INTO audioFormats (audioFormat)
VALUES ('Test')
SET @audioFormatId = SCOPE_IDENTITY()
Run Code Online (Sandbox Code Playgroud)

如果没有插入,SCOPE_IDENTITY将不会给我ID值.我可以执行标量查询以在可能的插入后获取标识,但似乎我应该能够使用最多一个SELECT和INSERT完成所有这些操作.

sql sql-server sql-server-2008-r2

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

为什么Web API不会反序列化,但JSON.Net会?

Web API如何无法反序列化JSON.Net反序列化的对象?

Visual Studio将Web API的尝试显示为所有空值,但JSON.Net已正确填充

这是Web API控制器:

public void Put(EditorSubmissionMainView ajaxSubmission) {
// ajaxSubmission: EditorSubmissionMainView with all values ('data' also == null)

    string json = "{\"id\":\"row_1377\",\"data\":{\"ROTATION\":\"1\",\"EQUIPMENT\":[{\"id\":\"6\"},{\"id\":\"8\"}],\"NOTES\":\"\"}}";

    EditorSubmissionMainView foo = Newtonsoft.Json.JsonConvert.DeserializeObject<EditorSubmissionMainView>(json) as EditorSubmissionMainView;
// foo is a EditorSubmissionMainView but properly deserialized.
}
Run Code Online (Sandbox Code Playgroud)

这是由Fiddler捕获并格式化的JSON:

{
    "id": "row_1377",
    "data": {
        "ROTATION": "1",
        "EQUIPMENT": [{
            "id": "6"
        },
        {
            "id": "8"
        }],
        "NOTES": ""
    }
}
Run Code Online (Sandbox Code Playgroud)

使用JSON.Net但不使用Web API控制器进行序列化的示例类:

[Serializable]
public class EditorSubmissionMainView
{
    public string id { get; set; }
    public EditorSubmissionMainViewData data { get; set; } …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc json.net asp.net-web-api

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

iPhone调试真实设备

在XCode Organizer中,控制台 - 我可以读取NSLog输出,但不是printf().这是否可以printf()在真实设备上读取结果,就像在模拟器中一样?

iphone debugging printf objective-c

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

可以像参数字典一样枚举Dapper DynamicParameters对象吗?

我知道我可以使用ParameterDirectionDapper.DynamicParameters:

var parameters = new DynamicParameters();
parameters.Add("iparam", 42);
parameters.Add("oparam", null, DbType.Int32, ParameterDirection.Output);
connection.Execute(sql, parameters);
Run Code Online (Sandbox Code Playgroud)

但是我可以在使用时这样做Dictionary<string, object>吗?

var parameters = new Dictionary<string, object>();
parameters.Add("iparam", 42);
parameters.Add("oparam", /* ??? */ );
connection.Execute(sql, parameters);
Run Code Online (Sandbox Code Playgroud)

或者,我如何迭代a DynamicParameters以获取参数名称和值?

原标题:

可以使用字典添加带有ParameterDirection的Dapper参数吗?

c# dapper .net-4.5

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