将c#char变量数据插入ADO char(1)字段

将c#char变量数据插入ADO char(1)字段,c#,C#,在转换过程中,我遇到了一个非常奇怪的对char值进行十进制加法的情况。 尝试了以下转换,但十进制值一直与字符一起分配给变量: Convert.ToChar(Console.ReadLine()) Console.ReadLine().ToString()[0] Console.ReadKey().KeyChar 包含字符字段的对象: 模式: 错误@DAL:System.Data.SqlClient.SqlException:'字符串或二进制数据将被截断 使用:.NET标准Libs您的字符仅

在转换过程中,我遇到了一个非常奇怪的对char值进行十进制加法的情况。

尝试了以下转换,但十进制值一直与字符一起分配给变量:

  • Convert.ToChar(Console.ReadLine())
  • Console.ReadLine().ToString()[0]
  • Console.ReadKey().KeyChar
  • 包含字符字段的对象:

    模式:

    错误@DAL:System.Data.SqlClient.SqlException:'字符串或二进制数据将被截断


    使用:.NET标准Libs

    您的字符仅显示在其前面的十进制值。因此,十进制值是字符的ASCII值。您可以通过打印值轻松地测试它,您会看到它只包含字符。如果您想在调试时对其进行测试,我建议在监视窗口中使用
    employeeGrade.ToString()


    一个字符甚至不可能保存值90'Z',因为它是多个字符。您可以在如下ASCII表中看到ASCII值:。

    使用字符串数据类型作为等级

    public string Grade { get; set; }
    

    有没有办法避免那个小数点?我将这些值发送到我的DAL以将其添加到我的数据库中,但db只是拒绝了该值,即db a char中的列?因为它实际上应该只保存字符(这里是“Z”),或者您的数据库也显示ASCII值和字符,但实际上只包含字符本身。您也可以通过再次获取值并打印来测试它。@Manti_Core:它的十进制表示形式仅显示在调试器中,以帮助您识别它是哪个字符(请参阅)。当您在代码中使用它时,它将只是一个
    Z
    ,因此您的DB拒绝它的原因与其他原因有关。char字段是employee对象的一部分,是的,DB中的字段也是一个char,我可以使用ListGet来检索和显示记录问题的解决方案结束了!