DataRowView里第1列是Int16类型,要把数据读出,赋给同样是int16的变量,我非得写成这样才行:Seq = System.Convert.ToInt16(drvCH[0]);都是相同的数据类型,为什么要转换一下?为什么不能写成:
Seq = (int)drvCH[0];
或其它开式?
Seq = (int)drvCH[0];
或其它开式?
解决方案 »
- .Net程序调试的问题
- vs 2008 对JS不能智能提示
- nunit在release中的问题?
- NHibernate.MappingException: Unknown entity class: QuickStart.Cat
- 如何用C#获得文件夹属性???
- ???模糊处理的工具是不是可以对一个project的个别class进行模糊处理??
- MSN登陆不了 出现"81000303“错误
- 將客戶機上文本文件(txt)導入中SQL服務器上
- 如何在datagrid里面增加一列“按钮”列(急!!!!!)
- 求教,try块中申请的Dataset资源需要释放吗,怎么释放
- 最后10分,在线等:如何将一个字符串的中间某几个连续的字符替换成已知的字符串?比如替换1100022中的000为999
- ComboBox问题
int是Int32。(System.Int16)drvCh[0]是可以的吧?
其实有种方法最简单:
int id = Int32.Parse(drvCH[0].ToString());
先转成字符串,再转成数值,这肯定没问题。
int id = Int32.Parse(drvCH[0].ToString());
先转成字符串,再转成数值
DataTable dt;
int seq =(int)dt.rows[i][j];
因为int是Int32位,即使你不写也可以直接把int16数字赋给int32但现在是drvCH[0]是object,所以必须用convert函数或int.Parse(drvCH[0].ToString());
2.变量Seq定义是int,也就是Int32drvCH[0]虽然指的是第一列,但它是对象,不是第一列的数据.所以要通过解包转换.下面的写法能通过:
Seq = (Int16)drvCH[0]
Seq = Int32.Parse(drvCH[0].ToString());
Int32 q = (Int16)drvCH[0]由于包中是Int16,所以必须用Int16解包,下面的写法错:
Seq = (Int32)drvCH[0]
Seq = (int)drvCH[0]
int32 是 int 类型
int64 是 long 类型
short Seq = System.Convert.ToInt16(drvCH[0]);
或short Seq = (short)drvCH[0];