【问题标题】:Why BLToolkit inserts \0 instead of '@' symbol in generated queries?为什么 BLToolkit 在生成的查询中插入 \0 而不是“@”符号?
【发布时间】:2015-07-31 22:29:33
【问题描述】:

我将 BLToolkit 与 mysql 一起使用,当我尝试向表中插入记录时,我收到如下查询:

INSERT INTO `P`
(
    `Name`
)
VALUES
(
    \0Name
); 

如您所见,这不是最好的 mysql 查询。

类:

public class P
{
    [PrimaryKey]
    [Identity]
    public int? ID  { get; set; }
    public string Name  { get; set; }
}

插入代码:

var p = new P();
p.Name = "asdf";
p.ID = (int) db.InsertWithIdentity(p);

你知道,发生了什么事吗?

【问题讨论】:

  • 查询本身是否“有效”?
  • 替换 '\0' 后(例如在调试器中) - 查询正确

标签: c# mysql insert crud bltoolkit


【解决方案1】:

我已经浏览了所有的 BLToolkit 代码,你知道我发现了什么吗??

错误在我的 MySqlDataProvider 中,我使用的是旧版本...

这里是正确的:https://github.com/igor-tkachev/bltoolkit/blob/master/Source/Data/DataProvider/MySqlDataProvider.cs

我的错误在这里:

public static char ParameterSymbol
{
    get { return MySqlSqlProvider.ParameterSymbol;  }
    set { MySqlSqlProvider.ParameterSymbol = value; }
}

我还没有设置MySqlSqlProvider.ParameterSymbol 属性,我的代码只是将值存储在本地...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-01
    • 2012-08-08
    • 2012-05-20
    相关资源
    最近更新 更多