C# 源数组长度不足。请检查 srcIndex 和长度以及数组的下限。

cookie燕子 2014-01-15 10:13:17
string strConn = "Data Source=127.0.0.1;Initial Catalog=zy;User ID=sa;Password=229107my229107m";
SqlConnection ConnAcc = new SqlConnection(strConn);
string strSQL = "SELECT * FROM Group_SGK3 ";
SqlDataAdapter de = new SqlDataAdapter(strSQL, ConnMdb);
try
{
//da.Fill(dt);
dtData.Clear();
de.Fill(dtData);

}
catch
{
break;
}
for (int n = 0; n < 7; n++)
{
int GK;
foreach (DataRow rdr in dtData.Rows)
{

int SGK = Convert.ToInt32(rdr["SGK"]);
GK = SGK << n;


if (Convert.ToBoolean(rdr["state1"]))
{


byte[] gk = new byte[8];
Array.Copy(HexStrToHexBytes(GK.ToString()), 0, gk, 7, 1);
Array.Copy(HexStrToHexBytes(dr["pdk"].ToString()), 0, pdk, 7, 1);// pdk buf: 0,0,0,0,0,0,0,0xcd
;
SKeyValue = SKeyValue1;
byte[] EncryptSk = EncryptDES(SKeyValue, gk);


EDS[6] = 0x01;
Array.Copy(EncryptSk, 0, EDS, 7, EncryptSk.Length);
//Thread.Sleep(5);
}
else
{


请问: Array.Copy(HexStrToHexBytes(GK.ToString()), 0, gk, 7, 1);这行提示错误说“源数组长度不足。请检查 srcIndex 和长度以及数组的下限。”这是怎么回事呢?应该怎么改?请各位大师指点!
...全文
1609 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cookie燕子 2014-01-15
  • 打赏
  • 举报
回复
我的GK是通过SGK移位得来的,SGK在数据库中是int型,值为1,这个有8字节吗?我是初学者,不是太懂。。
threenewbee 2014-01-15
  • 打赏
  • 举报
回复
HexStrToHexBytes(GK.ToString())返回了什么,有没有8个字节?
threenewbee 2014-01-15
  • 打赏
  • 举报
回复
引用 2 楼 u013470910 的回复:
我的GK是通过SGK移位得来的,SGK在数据库中是int型,值为1,这个有8字节吗?我是初学者,不是太懂。。
如果你的数组只有5个字节(比如说),你让array.copy从第8个字节开始拷贝一个字节,那显然出错。
cookie燕子 2014-01-15
  • 打赏
  • 举报
回复
那我在数据库中设置成11,这样HexStrToHexBytes(GK.ToString())就有8字节了吗?就不会出错是吗?
Regan-lin 2014-01-15
  • 打赏
  • 举报
回复
引用 2 楼 u013470910 的回复:
我的GK是通过SGK移位得来的,SGK在数据库中是int型,值为1,这个有8字节吗?我是初学者,不是太懂。。
值为1这怎么够字节啊,int是占4个字节的
F546445693 2014-01-15
  • 打赏
  • 举报
回复
对于这种问题,自己单步调试下就可以出来了! 长度不足,肯定是数组超出了。for已经写死了7个长,看看你数据有没有这么长就知道了,最好根据你数据长来for循环,别写死。

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧