sql >> データベース >  >> RDS >> Sqlserver

C# を使用して SQL Server で DICOM ファイルを保存および取得する方法

    byte[] objData を宣言します 外側とブロックを使用する前に size を設定してみてください バイト配列の:

    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;
    

    編集: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);
           }
        }
      }
    }
    

    または、DataAdapter/DataTable (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. 接続プロパティの設定方法(includeSynonyms)

    2. PostgreSQLクエリのパフォーマンスを理解する

    3. PL/SQLプロシージャ内からバッチ・ファイルを実行する方法

    4. MySQLをループして、テーブルにデータを挿入します