如何在数据库中同时保存文本和图片

如何在数据库中同时保存文本和图片,第1张

数据库中保存不同类型的文件,和在数据库中保存是一样的。就是向数据库以byte形式存入

向数据库中保存不同类型的文件,和在数据库中保存是一样的。就是向数据库以byte形式存入

然后就是写入数据库,代码如下:

FileInfo fi = new FileInfo( txtFileNameText );// Replace with your file name

        if ( fiExists

        {

         byte[] bData = null;

int nNewFileID = 0;

// Read file data into buffer

using ( FileStream fs = fiOpenRead() )

            {

bData = new byte[fiLength];

int nReadLength = fsRead( bData,0, (int)(fiLength) );

}

// Add file info into DB

string strQuery = "INSERT INTO FileInfo "

+ " ( FileName, FullName, FileData ) "

+ " VALUES "

+ " ( @FileName, @FullName, @FileData ) "

+ " SELECT @@IDENTITY AS 'Identity'";

SqlCommand sqlComm = new SqlCommand( strQuery, sqlConn );

sqlCommParametersAdd( "@FileName", fiName );

sqlCommParametersAdd( "@FullName", fiFullName );

sqlCommParametersAdd( "@FileData", bData );

            // Get new file ID

SqlDataReader sqlReader = sqlCommExecuteReader();

if( sqlReaderRead() )

{

nNewFileID = intParse(sqlReaderGetValue(0)ToString());

}

            sqlReaderClose();

            sqlCommDispose();

if( nNewFileID > 0 )

            {

                // Add new item in list view

ListViewItem itmNew = lsvFileInfoItemsAdd( fiName );

itmNewTag = nNewFileID;

            }

        }

4而读出的代码如下:

// Get new file name

string strFullName =

dlgFBSaveSelectedPath;

if( strFullName[strFullNameLength - 1] != '//'

)

strFullName

+= @"/";

strFullName +=

lsvFileInfoSelectedItems[0]Text;

string strQuery = "SELECT FileData FROM FileInfo

"

+

" WHERE FileID = " + lsvFileInfoSelectedItems[0]TagToString();

SqlDataAdapter

sqlDAdapter = new SqlDataAdapter(strQuery,sqlConn);

DataSet

sqlRecordSet = new DataSet();

byte[] bData = null;

//Get file data from DB

try

{

sqlDAdapterFill(

sqlRecordSet, "FileInfo" );

foreach( DataRow dr in sqlRecordSetTables["FileInfo"]Rows)

{

if( dr["FileData"] != DBNullValue )

bData

= ( byte[] )dr["FileData"];

}

}

catch(SqlException sqlErr)

{

MessageBoxShow(

sqlErrMessage );

}

catch

{

MessageBoxShow(

"Failed to read data from DB!" );

}

sqlRecordSetDispose();

sqlDAdapterDispose();

if( bData != null )

{

// Save file

FileInfo

fi = new FileInfo( strFullName

);

if( !fiExists )

{

//Create the file

using (FileStream fs = fiCreate())

{

fsWrite(

bData, 0, bDataLength);

}

}

else

{

//Create the file

using (FileStream fs =

fiOpenWrite())

{

fsWrite(

bData, 0, bDataLength);

}

}

}

ajax异步。

图1图2分别异步提交到后台。新名字的话也是后台处理的。存在空间里,把名存在数据库里。输出名到前台

前台图1图2后面可分别设一个隐藏的 input 用来ajax返回各自的名。

总的提交按钮只提交隐藏的input即可。(input里是名,可同时提交多个input)

暂无在第一次加载html时加载。每一次ajax上传除了返回名到对应的input外,还同时js动态输出新img标签代替对应的暂无,新img标签要写好完整的地址。

//--用自己的初始连接 初始一个SQL连接实体

MyDataSQLDataContext dbc = new MyDataSQLDataContext("Data Source=;Initial Catalog=TEXT;uid=sa;pwd=8888;");

DataSet ds = null;

string commads = "SELECT [name],[photo] FROM [TABE1]";

ds = dbcGetDataSet(commads);

if (ds != null && dsTablesCount > 0 && dsTables[0]RowsCount > 0)

{

for (int i = 0; i < dsTables[0]RowsCount; i++)

{

try

{

//--判断字段数据是否有数据且有照片流数据

if (((Byte[])dsTables[0]Rows[i]["photo"])Length > 0 && ((Byte[])dsTables[0]Rows[i]["photo"])Max() > 0)

{

byte[] aa = (Byte[])dsTables[0]Rows[i]["photo"];

Bitmap bit = new Bitmap(new SystemIOMemoryStream((Byte[])dsTables[0]Rows[i]["photo"]));

//--保存照片

pictureBox1Image = bit;

}

}

catch (Exception ex)

{ MessageBoxShow(exToString()); }

dsClear(); dsDispose();

}

}

试试

以上就是关于如何在数据库中同时保存文本和图片全部的内容,包括:如何在数据库中同时保存文本和图片、用aspupload如何同时上传两张图片,并以新命名的方式把路径保存到数据库求高手解决、使用C#读取SQL数据库中的图片等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9807151.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存