使用openfiledialog并保存在数据库中时出错

时间:2013-04-08 12:26:41

标签: c# winforms nhibernate openfiledialog

当我尝试在数据库中保存对象时出现错误,但只有当我在图片框中加载图像时才会出现错误,如果我没有加载任何图像,它可以完美地运行并保存数据库中的对象。这是保存的代码:

public partial class Form1 : Form
{    
    private void guardarBtn_Click(object sender, EventArgs e)
    {
        Repository repository = Repository.Instance;
        Product pro = new Product();
        pro.Name = NameTxt.Text;
        pro.Quantity = QuantityNum.Value;
        pro.CostPrice = decimal.Parse(CostPriceTxt.Text);
        pro.ListPrice = decimal.Parse(ListPriceTxt.Text);
        repository.Save<Product>(pro);                      
        Source.Add(pro);                                     
    }
}
class Repository
{
    public void Save<T>(T objeto)
    {
        Session.Save(objeto);
        Session.Flush();
    }
}

加载图片的代码:

private void ImageBtn_Click(object sender, EventArgs e)
{
    OpenFileDialog dlg = new OpenFileDialog();
    dlg.Filter = "JPG Files (*.jpg)|*.jpg|PNG Files (*.png)|*.png|JPEG Files (*.jpeg)|*.jpeg|GIF Files (*.gif)|*.gif";
    if (dlg.ShowDialog() == DialogResult.OK)
    {
        this.ImageBox.Image = new Bitmap(dlg.OpenFile());
    }
    dlg.Dispose();
}

错误消息是:

  

无法插入:   [Stock.Models.Classes.Product#13715d8d-3774-4b14-8c9c-dbdd6d5aff5e]

     

[SQL:   INSERT INTO产品(名称,CostPrice,Quantity,ListPrice,Id)VALUES   (?,?,?,?,?)]

只有在图片框中加载了图片时,它才会显示在Session.Flush()行中。 我想知道我做错了什么。

0 个答案:

没有答案