Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách lưu trữ và truy xuất tệp DICOM trong SQL Server bằng C #

Khai báo byte[] objData bên ngoài và trước khi sử dụng khối và cố gắng đặt kích thước của mảng byte:

byte []objData=null;
using (MemoryStream memStream = new MemoryStream())
 {
    using (FileStream fileStream = File.Open(txtDICOMFilePath.Text, FileMode.Open))
    {
         fileStream.CopyTo(memStream);
    }
    int intL = Convert.ToInt32(memStream.Length);
    objData = new byte[intL];
    memStream.Read(objData,0,objData.Length);
 }

SqlCom.Parameters.Add("@ImageData",SqlDb.Image,objData.Length).Value=objData;

CHỈNH SỬA:Để đọc dữ liệu từ ImagesStore

string qry = "select * From ImagesStore";

using(SqlConnection Cn=new SqlConnect(CnStr))
{
  using(SqlCommand SqlCom = new SqlCommand(qry, CN))
  {
    Cn.Open();
    using(SqlDataReader dr=SqlCom.ExecuteReader())
    {
      while(dr.Read())
      {
          string path="x:\\folder\\" + dr[0] + ".png";
          byte []bytes=(byte[])dr[1];
          System.IO.File.WriteAllBytes(path,bytes);
       }
    }
  }
}

Ngoài ra, bạn có thể sử dụng DataAdapter / DataTable (mã trong OP)

if (dt.Rows.Count > 0)
     {
        foreach(DataRow row in dt.Rows)
         {
          string path="x:\\folder\\" + row[0] + ".png";
          byte []bytes=(byte[])row[1];
          System.IO.File.WriteAllBytes(path,bytes);
         }
     }



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chọn các hàng riêng biệt trong khi nhóm theo giá trị tối đa

  2. Làm cách nào để thêm dữ liệu meta vào mọi ô trong tất cả các bảng của cơ sở dữ liệu quan hệ?

  3. SQL Server 2016:Cải tiến OLTP trong bộ nhớ

  4. Làm cách nào để so sánh hai dấu thời gian làm ngày tháng trong SQL Server

  5. Kiểm tra xem một đối tượng có phải là một thủ tục được lưu trữ hay không bằng cách sử dụng OBJECTPROPERTY () trong SQL Server