C# 无法将类型字符串隐式转换为字符

C# 无法将类型字符串隐式转换为字符,c#,asp.net,business-logic,type-conversion,C#,Asp.net,Business Logic,Type Conversion,我知道char和string是不同的。我给表中的列状态赋予数据类型char。 我被困在这里是因为我第一次使用char。这是我的密码 cmd.CommandType = CommandType.StoredProcedure; if (con.State == ConnectionState.Closed) con.Open(); MySqlDataReader dr = cmd.ExecuteReader(); List&

我知道char和string是不同的。我给表中的列状态赋予数据类型char。 我被困在这里是因为我第一次使用char。这是我的密码

 cmd.CommandType = CommandType.StoredProcedure;
        if (con.State == ConnectionState.Closed)
            con.Open();
        MySqlDataReader dr = cmd.ExecuteReader();
        List<clssessionprp> obj = new List<clssessionprp>();
        while (dr.Read())
        {
            clssessionprp k = new clssessionprp();
            k.p_sescod = Convert.ToInt32(dr[0]);
            k.p_session = dr[1].ToString();
            k.p_status = dr[2].ToString();
        }
那么:

dr[2].ToString()[0]
-当然要检查它是否为null

或者:

Convert.ToChar(dr[2])
也可以工作。

这个怎么样

   k.p_status  = char.Parse(dr[2].ToString());
您可以使用直接将对象转换为字符,而不是使用
ToString()
将其转换为字符串


有两种选择

Convert.ToChar(dr[2])


char chartext=text.ToCharArray()[0]

问题是什么?我可以看一下“K”类吗?它只是数据类型转换问题,下面的答案解决了我的另一个问题adil,Char在mysqldbtype中不受支持,我们应该更改它还是如何修复它?执行Convert.ToChar(dr[2])时是否出现异常?它包含什么数据?它工作正常,但当在我的BLL中的任何方法中传递参数时。它说“MySqlDbType不包含Char的定义”,我正在使用Mysql和asp.net WebForms。如果在传递到MySQLDb之前将Char转换为string,或者使用其他适当的类型而不是string,会怎么样?可以试试这个吗,cmd.Parameters.Add(“\u-clssec”,MySqlDbType.string)。Value=p.p\u-clssec.ToString();
   k.p_status  = char.Parse(dr[2].ToString());
k.p_status = Convert.ToChar(dr[2]);