C#将数据和图像插入SQL Server 2008数据库时出错

时间:2013-07-04 18:42:55

标签: c# sql sql-server-2008

我正在尝试将列和图像插入SQL Server 2008数据库,但我收到2个错误

  

错误1
  'System.IO.BinaryReader.BinaryReader(System.IO.Stream)'的最佳重载方法匹配有一些无效的参数(第62行第35列)

     

错误2   参数1:无法从'datagrid.FileStream'转换为'System.IO.Stream'(第62行第52列)

我很困惑该怎么做......

        try
        {
            byte[] img = null;
            FileStream fs = new FileStream(picLoc, FileMode.Open, FileAccess.Read);
            BinaryReader br = new BinaryReader(fs);
            img = br.ReadBytes((int)fs.Length);
            string sql = "INSERT INTO PicTable(Name,Image) VALUES(" + textBox1.Text + ",@IMG)";
            if (conn.State != ConnectionState.Open)
                conn.Open();
            command = new SqlCommand(sql, conn);
            command.Parameters.Add(new SqlParameter("@IMG", img));
            int x = command.ExecuteNonQuery();
            MessageBox.Show(x.ToString() + " records saved.");
            conn.Close();

            pictEmp.Image = null;
        }
        catch (Exception ex)
        {
            conn.Close();
            MessageBox.Show(ex.Message);
        }

看起来像这样

enter image description here

1 个答案:

答案 0 :(得分:0)

根据错误,FileStream不是来自System.IO名称空间,而是来自dataGrid名称空间。

完全限定FileStream应解决您的问题:

System.IO.FileStream fs = new System.IO.FileStream(picLoc, FileMode.Open, FileAccess.Read);