我正在做一个学生管理系统,但是出现了一些问题,运行时出现“指定的转换无效”,
也就是以下这段oItem = new PDSAListItemNumeric();
oItem.ID = (int) oDR["学号"];
oItem.MstrValue = oDR["姓名"].ToString();
lstProducts.Items.Add(oItem);
try
{
oCmd = new SqlCommand();
oCmd.Connection = new SqlConnection(strConn);
oCmd.Connection.Open();
oCmd.CommandText = strSQL;
oDR = oCmd.ExecuteReader(); lstProducts.Items.Clear();
while (oDR.Read())
{
//lstProducts.Items.Add(oDR["姓名"].ToString());
oItem = new PDSAListItemNumeric();
oItem.ID = (int) oDR["学号"];
oItem.MstrValue = oDR["姓名"].ToString();
lstProducts.Items.Add(oItem);
}
if(lstProducts.Items.Count>0)
{
lstProducts.SetSelected(0, true);
}
}
catch (Exception oExcept)
{
MessageBox.Show(oExcept.Message);
}
也就是以下这段oItem = new PDSAListItemNumeric();
oItem.ID = (int) oDR["学号"];
oItem.MstrValue = oDR["姓名"].ToString();
lstProducts.Items.Add(oItem);
try
{
oCmd = new SqlCommand();
oCmd.Connection = new SqlConnection(strConn);
oCmd.Connection.Open();
oCmd.CommandText = strSQL;
oDR = oCmd.ExecuteReader(); lstProducts.Items.Clear();
while (oDR.Read())
{
//lstProducts.Items.Add(oDR["姓名"].ToString());
oItem = new PDSAListItemNumeric();
oItem.ID = (int) oDR["学号"];
oItem.MstrValue = oDR["姓名"].ToString();
lstProducts.Items.Add(oItem);
}
if(lstProducts.Items.Count>0)
{
lstProducts.SetSelected(0, true);
}
}
catch (Exception oExcept)
{
MessageBox.Show(oExcept.Message);
}
oItem.name = (int) oDR["学号"];
oItem.text = oDR["姓名"].ToString();
lstProducts.Items.Add(oItem);
oItem.ID = (oDR["学号"] is System.DBNull) ? 0 : (int)oDR["学号"];
或者:
oItem.ID = (oDR["学号"] is System.DBNull) ? 0 : int.Parse(oDR["学号"].ToString());
可能是你的类型不匹配,或者数据字段没有值,或者不能强制转换int
或者直接打出来Console.WriteLine(oDR["学号"].GetType().ToString());