不能隐式地将类型字符串转换为char

时间:2014-01-16 06:01:37

标签: 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<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();
        }

这里status列是char数据类型。我谷歌这个但是找不到任何想要的结果。 任何帮助都将得到满足

我的BLL代码是

public void save_rec(clsclsprp p)
    {
        MySqlCommand cmd = new MySqlCommand("ins_cls", con);
        cmd.CommandType = CommandType.StoredProcedure;
        if (con.State == ConnectionState.Closed)
            con.Open();
        cmd.Parameters.Add("_clsnam", MySqlDbType.VarChar, 50).Value = p.p_clsnam;
        cmd.Parameters.Add("_clsdes", MySqlDbType.VarChar, 200).Value = p.p_clsdes;
        cmd.Parameters.Add("_clssec", MySqlDbType.Char,1).Value = p.p_clssec;
        cmd.ExecuteNonQuery();
        con.Close();
        cmd.Dispose();
    }

4 个答案:

答案 0 :(得分:5)

您可以使用Convert.ToChar(Object)直接将对象转换为字符,而不是使用ToString()将其转换为字符串。

k.p_status = Convert.ToChar(dr[2]);

答案 1 :(得分:2)

怎么样:

dr[2].ToString()[0] - 当然,检查它不是空的。

或者:

Convert.ToChar(dr[2])也可以发挥作用。

答案 2 :(得分:0)

这个怎么样?

   k.p_status  = char.Parse(dr[2].ToString());

答案 3 :(得分:0)

有两种选择......

Convert.ToChar(DR [2]);

char chartext = text.ToCharArray()[0];