不能将类型“字符串”隐式转换为“短”
本文关键字:字符串 转换 不能 类型 | 更新日期: 2023-09-27 18:35:35
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 "字符串"转换为"short"
对于局部变量 kundeID。
最简单的解决方案是将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
.
Altrlernative,如果您出于任何原因需要kundelID
成为string
,请在使用之前将其正确转换为KundelID
。
KundelID = Convert.ToInt16(kundelID);
然后,它也是正确的。
您可以使用
以下函数:
Int16.TryParse(string value, out number);
谁将返回布尔值,如果函数可以强制转换它,则为 true,如果不能,则为 false。
您可以在以下情况下使用它:
short id;
if(Int16.TryParse(Request.QueryString["id"], out id))
{
ProduktID = id;
}
警告非常冗长。你应该将 kundeID 解析为 short(或将 KundeID 更改为字符串)。
KundeID = short.Parse(kundeID);
如果输出是对象隐蔽到短可以看起来像那样
short var_short = short.Parse(Convert.ToString(reader["something"]));