C# 从BLOB获取视频并播放该视频

C# 从BLOB获取视频并播放该视频,c#,sql,oracle11g,C#,Sql,Oracle11g,我正在开发oracle 11g。我创建了一个有3列的表,用于创建表的SQL是 create table blobvideo(fileid int,filename varchar2(100), filedata blob); FileInfo fi = new FileInfo("C:\videoPath.mp4"); FileStream fs = new FileStream(videoFilePath, FileMode.Open, FileAccess.

我正在开发oracle 11g。我创建了一个有3列的表,用于创建表的SQL是

create table blobvideo(fileid int,filename varchar2(100), filedata blob);
        FileInfo fi = new FileInfo("C:\videoPath.mp4");
        FileStream fs = new FileStream(videoFilePath, FileMode.Open, FileAccess.Read);
        byte[] fileToByte = new byte[fs.Length];
        fs.Read(fileToByte, 0, Convert.ToInt32(fs.Length));

        String strSQL = "INSERT INTO blobvideo (FileId,filename,FILEDATA) VALUES (1,'" + fi.FullName + "',:TEXT_DATA)";

        OracleParameter parmData = new OracleParameter();
        parmData.Direction = ParameterDirection.Input;
        parmData.OracleDbType = OracleDbType.Blob;
        parmData.ParameterName = "TEXT_DATA";
        parmData.Value = fileToByte;

        OracleCommand cm = new OracleCommand();
        cm.Connection = myConnection;
        cm.Parameters.Add(parmData);
        cm.CommandText = strSQL;
        myConnection.Open();
        cm.ExecuteNonQuery();
        myConnection.Close();
我在该表中插入视频的代码是

create table blobvideo(fileid int,filename varchar2(100), filedata blob);
        FileInfo fi = new FileInfo("C:\videoPath.mp4");
        FileStream fs = new FileStream(videoFilePath, FileMode.Open, FileAccess.Read);
        byte[] fileToByte = new byte[fs.Length];
        fs.Read(fileToByte, 0, Convert.ToInt32(fs.Length));

        String strSQL = "INSERT INTO blobvideo (FileId,filename,FILEDATA) VALUES (1,'" + fi.FullName + "',:TEXT_DATA)";

        OracleParameter parmData = new OracleParameter();
        parmData.Direction = ParameterDirection.Input;
        parmData.OracleDbType = OracleDbType.Blob;
        parmData.ParameterName = "TEXT_DATA";
        parmData.Value = fileToByte;

        OracleCommand cm = new OracleCommand();
        cm.Connection = myConnection;
        cm.Parameters.Add(parmData);
        cm.CommandText = strSQL;
        myConnection.Open();
        cm.ExecuteNonQuery();
        myConnection.Close();
我得到BLOB的代码是

        OracleCommand ocmd1 = new OracleCommand("select * from blobfile ", myConnection);
        myConnection.Open();
        OracleDataReader rds = ocmd.ExecuteReader();
        rds.Read();
        OracleBlob newBlob = rds.GetOracleBlob(2);

插入工作正常,但我的问题是如何获取该视频,以及如何在windows media player或vlc或任何其他与C配合使用的视频播放器中播放该视频。

是否有理由将插入到表Blobvideo中,但执行“在表blobfile上选择”操作?另外,您总是在FileID中插入1,这不是PK吗?好的。为了进行测试,我在FileID中插入了1。在那之后,我将把它转换成非唯一的数字。你的第一个问题我不清楚。你正在插入一个不同的表,而不是从中选择:插入到blobvideo。。。从blobfile中选择*。。。这是故意的吗?哦,对不起,这是个错误,它必须是从blobvideo中选择的