C# 我在调试中遇到问题,我不知道';I don’我不知道原因是什么#

C# 我在调试中遇到问题,我不知道';I don’我不知道原因是什么#,c#,sql,C#,Sql,我有两张图片,第一张是关于产品的,第二张是关于产品条形码的。 我使用此代码创建产品 private void button1_Click(object sender, EventArgs e) { string barcode = CMBIDCAT.Text+"345" + TXTIDP.Text +"012" ; Bitmap bitmap = new Bitmap(barcode.Length * 20, 50); using (Gra

我有两张图片,第一张是关于产品的,第二张是关于产品条形码的。 我使用此代码创建产品

private void button1_Click(object sender, EventArgs e)
    {
        string barcode = CMBIDCAT.Text+"345" + TXTIDP.Text +"012" ;
        Bitmap bitmap = new Bitmap(barcode.Length * 20, 50);
        using (Graphics graphics = Graphics.FromImage(bitmap))
        {
            Font ofont = new Font("code 128", 30);
            PointF point = new PointF(2f, 2f);
            SolidBrush blackbursh = new SolidBrush(Color.Black);
            SolidBrush whitebursh = new SolidBrush(Color.White);
            graphics.FillRectangle(whitebursh, 0, 0, bitmap.Width, bitmap.Height);
            graphics.DrawString("*" + barcode + "*",ofont, blackbursh, point);
        }
        using (DataTable dt = new DataTable())
        {
            PIC2.Image = bitmap;
            PIC2.Height = bitmap.Height;
            PIC2.Width = bitmap.Width;
        }
private void button3_Click(object sender, EventArgs e)
    {
        MemoryStream ms = new MemoryStream();
        PIC1.Image.Save(ms, PIC1.Image.RawFormat);
        byte[] byteImage = ms.ToArray();
        MemoryStream st = new MemoryStream();
        PIC2.Image.Save(st, PIC2.Image.RawFormat);
        byte[] byteImage1 = st.ToArray();

        prd.ADD_PRODUCT(Convert.ToInt32(CMBIDCAT.SelectedValue), TXTIDP.Text, TXTNMP.Text, Convert.ToInt32(TXTFP.Text), Convert.ToInt32(TXTSP.Text), Convert.ToInt32(TXTTP.Text), TXTDES.Text, Convert.ToInt32(TXTQTE.Text), byteImage, byteImage1);
        MessageBox.Show("تمت الاضافة بنجاح ", "عملية الاضافة",MessageBoxButtons.OK , MessageBoxIcon.Information);
    }

我怎么才能解决这个问题呢。

我没有代表只发表评论。但是,您是否应该为第二张图像使用新的MemoryStream

根据MSDN,您不应该写入已写入的流

将代码更改为:

MemoryStream ms = new MemoryStream();
PIC1.Image.Save(ms, PIC1.Image.RawFormat);
byte[] byteImage = ms.ToArray();

MemoryStream ms1 = new MemoryStream();
PIC2.Image.Save(ms1, PIC2.Image.RawFormat);
byte[] byteImage1 = ms1.ToArray();

希望能奏效。:)

> P>在调试格式或流时,确保哪一个值为NULL,并考虑使用内存流的“使用”语句,以便释放资源如下:

        byte[] byteImage1;

        using(MemoryStream ms = new MemoryStream())
        {
            PIC1.Image.Save(ms, PIC1.Image.RawFormat);
            byteImage1 = ms.ToArray();
        }

并考虑为每个图像使用两个内存流作为@提姆。E建议。< /P>在按钮1之前单击了按钮3。从inn按钮1单击事件开始,您在PIC2中分配了一些值。图像正确吗?此标题类似于“我不知道我在做什么,请帮助我!!!”。你想要实现什么?问题到底在哪里?“我的代码不起作用”不是一个描述。我使用按钮1为我的产品创建条形码,按钮3将我的产品的值保存到SQLDatabase的表中。我的意思是,在创建条形码之前,您可以尝试保存它。这是正确的还是我可能遗漏了一些东西请发布,而不是将代码作为注释发布。我尝试这样做会得到相同的结果