【问题标题】:.NET (C#) MySqlDbType for char.NET (C#) MySqlDbType 用于 char
【发布时间】:2018-04-18 01:16:19
【问题描述】:

我一直致力于从 C# 调用存储过程,我遇到了一个问题,将 mysql 数据库中声明为“char”类型的列映射到 c# 中的 mysqldbtype(没有 mysqldb.char,并且映射到 varchar 不起作用)。谁能为我提供正确的映射,以便我可以从我的代码中调用这个存储过程?谢谢。

MySQL 进程:

CREATE PROCEDURE xyz(IN a VARCHAR(8), OUT bCHAR(64))
BEGIN
   SELECT E.b
   INTO b
   FROM Employees E
   WHERE a= E.a;
END //

C#代码:

//get the salt to use with the login hash
            cmd.CommandText = StringLibrary.XYZ; //proc name
            cmd.CommandType = System.Data.CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("a", username);
            cmd.Parameters["@a"].Direction = System.Data.ParameterDirection.Input;
            /*TODO ------>*/cmd.Parameters.AddWithValue("b", MySqlDbType.); // <---------TODO find the correct type here
            cmd.Parameters["@b"].Direction = System.Data.ParameterDirection.Output;

【问题讨论】:

  • 我将盐和密码作为二进制 BLOB 存储在 MySQL 中。不知道你在做什么。
  • 嗨@TimBiegeleisen,如果你碰巧知道映射到char的c#数据类型,并且想分享,不管这个proc在做什么;那将不胜感激。谢谢。
  • 这是一个应该修复的错误:lists.mysql.com/commits/3284 但显然没有发布...尝试使用字符串,因为它是以前使用的枚举..

标签: c# mysql .net database


【解决方案1】:

使用MySqlDbType.String。根据文档 cmets in the source code:

/// <summary>
/// A fixed-length string.
/// </summary>
String = 254,

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-21
    • 2014-12-19
    • 2012-06-07
    • 2010-11-22
    相关资源
    最近更新 更多