无法隐式转换类型'字符串'短暂的'

时间:2016-02-19 23:43:15

标签: c#

protected void btnAdd_Click(object sender, EventArgs e)
{
    if (!string.IsNullOrWhiteSpace(Request.QueryString["id"]))
    {       
        string kundeID = "-1";
        int id = Convert.ToInt32(Request.QueryString["id"]);
        int totalsum = Convert.ToInt32(ddlAmount.SelectedValue);

        Handlevogn handlevogn = new Handlevogn
        {
            TotalSum = totalsum,
            KundeID = kundeID,
            Dato = DateTime.Now,
            ErIHandlevogn = true,
            ProduktID = id
        };

        HandlevognModell modell = new HandlevognModell();
        lblResult.Text = modell.InsertHandlevogn(handlevogn);
    } 

继续收到错误

  

无法隐式转换typre' string'到'短'

表示局部变量kundeID。

5 个答案:

答案 0 :(得分:4)

最简单的解决方案是将kundelID更改为short

short kundelID = -1;

然后你先前在这里进行的隐式转换:

KundelID = kundelID; //this is called implicit because you implicitly tell kundelID, which is a short to be changed to KundelID, which is likely a short

属于同一类型short

另外,如果您因任何原因需要kundelID成为string,请在使用之前将其正确转换为KundelID

KundelID = Convert.ToInt16(kundelID);

然后,它也是正确的。

答案 1 :(得分:0)

警告非常详细。您应该将kundeID解析为short(或将KundeID更改为字符串)。

KundeID = short.Parse(kundeID);

答案 2 :(得分:0)

您可以使用以下功能:

Int16.TryParse(string value, out number);

谁将返回一个布尔值,如果函数可以转换它,则返回true;否则返回false。

您可以在if:

中使用它
short id;
if(Int16.TryParse(Request.QueryString["id"], out id))
{
    ProduktID = id;
}

答案 3 :(得分:0)

您可以使用

short kundeID = -1;

答案 4 :(得分:-1)

如果输出是对象隐蔽的,则可能看起来像这样

short var_short = short.Parse(Convert.ToString(reader["something"]));