c#中的索引超出界限异常

本文关键字:出界 界限 异常 索引 | 更新日期: 2023-09-27 18:06:12

我正在尝试将我的图片加载到动态创建的图片框中。这些图片将从位于我本地网络上的mysql服务器检索。我已经能够通过更改查询只选择1个id来在图片框中获取一张图片。所以我知道它一次只能用一个。

代码:

private void ass_wijzig_Load(object sender, EventArgs e)
    {
        string query = "Select Image From Product";
        MySqlCommand cmd = new MySqlCommand(query,connection);
       // MySqlDataReader reader = cmd.ExecuteReader();
        var da = new MySqlDataAdapter(cmd);
        var ds = new DataSet();
        da.Fill(ds, "Image");
        int count = ds.Tables["Image"].Rows.Count;
        DataRow myrow;
        byte[] mydata = new byte[0];
        int x = 10;
        int y = 10;
        for (int i = 0; i < 2; i++)
        {
             myrow= ds.Tables["Image"].Rows[i];
            // var data = (Byte[])(ds.Tables["Image"].Rows[i]["Image"]);
             mydata = (Byte[])(ds.Tables["Image"].Rows[i]["Image"]);
             Stream[] str = new MemoryStream[i];
             str[i] = new MemoryStream(mydata);
             PictureBox[] pbx = new PictureBox[i];
             pbx[i] = new PictureBox();
             pbx[i].Size = new Size(150, 150);
             pbx[i].SizeMode = PictureBoxSizeMode.StretchImage;
             pbx[i].Image = Image.FromStream(str[i]);
             pbx[i].Visible = true;
             pbx[i].Location = new Point(x, y);
             x += pbx[i].Location.X + pbx[i].Width;
             this.Controls.Add(pbx[i]);
        }

Stream[] str = new MemoryStream[i];上抛出异常如果有人知道这个问题,我会很荣幸,

Thanks in advance

c#中的索引超出界限异常

问题是数组是0索引的。

Stream[] str = new MemoryStream[i];

创建一个长度为i的数组,所以有效的索引是0…1.

那么你做:

str[i] = new MemoryStream(mydata);

试图访问索引i,这是无效的

看看你的代码,我不知道为什么你在这里使用一个数组,而不是一个普通的变量。只做:

Stream str = new MemoryStream(myData);