fatima81
شنبه 08 مهر 1385, 07:19 صبح
باسلام
من از کد زیر برای خواندن ونوشتن فایلهای pdf و word در DataBase sql server استفاده کردم
برای فایلهای word ، برنامه word را باز می کند ولی بجای هر کاراکتر یک مربع کوچک نمایش می دهد. وبرای فایلهای pdf پیغام خطای زیر را می دهد.
file does not begin with'%PDF-'
ممنون میشم اگه کسی بتونه مشکل منو حل کنه
,این کد مربوط به نوشتن در فایل
private int WriteToDB(string strName, string strType, ref byte[] Buffer)
{
int nFileID = 0;
// Create connection
SqlConnection dbConn = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
// Create Adapter
SqlDataAdapter dbAdapt = new SqlDataAdapter("SELECT * FROM ManuScriptTable", dbConn);
// We need this to get an ID back from the database
dbAdapt.MissingSchemaAction = MissingSchemaAction.AddWithKey;
// Create and initialize CommandBuilder
SqlCommandBuilder dbCB = new SqlCommandBuilder(dbAdapt);
// Open Connection
dbConn.Open();
// New DataSet
DataSet dbSet = new DataSet();
// Populate DataSet with data
dbAdapt.Fill(dbSet, "ManuScriptTable");
// Get reference to our table
DataTable dbTable = dbSet.Tables["ManuScriptTable"];
// Create new row
DataRow dbRow = dbTable.NewRow();
// Store data in the row
dbRow["Title"] = strName;
dbRow["Size"] = Buffer.Length;
dbRow["ContentType"] = strType;
dbRow["Text"] = Buffer;
// Add row back to table
dbTable.Rows.Add(dbRow);
// Update data source
dbAdapt.Update(dbSet, "ManuScriptTable");
// Get newFileID
if( !dbRow.IsNull("ScriptNo") )
nFileID = (int)dbRow["ScriptNo"];
// Close connection
dbConn.Close();
// Return FileID
return nFileID;
}
این هم کد مربوط به خواندن فایل از DataBase
ShowTheFile(File_ID);
///////////
private void ShowTheFile(int FileID)
{
// Define SQL select statement
string SQL = "SELECT Size, Text, ContentType FROM ManuScriptTable WHERE ScriptNo = "
+ FileID.ToString();
// Create Connection object
SqlConnection dbConn = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
// Create Command Object
SqlCommand dbComm = new SqlCommand(SQL, dbConn);
// Open Connection
dbConn.Open();
// Execute command and receive DataReader
SqlDataReader dbRead = dbComm.ExecuteReader();
// Read row
dbRead.Read();
// Clear Response buffer
Response.Clear();
// Set ContentType to the ContentType of our file
Response.ContentType = (string)dbRead["ContentType"];
// Write data out of database into Output Stream
Response.OutputStream.Write((byte[])dbRead["Text"], 0, (int)dbRead["Size"]);
// Close database connection
dbConn.Close();
// End the page
Response.End();
}
من از کد زیر برای خواندن ونوشتن فایلهای pdf و word در DataBase sql server استفاده کردم
برای فایلهای word ، برنامه word را باز می کند ولی بجای هر کاراکتر یک مربع کوچک نمایش می دهد. وبرای فایلهای pdf پیغام خطای زیر را می دهد.
file does not begin with'%PDF-'
ممنون میشم اگه کسی بتونه مشکل منو حل کنه
,این کد مربوط به نوشتن در فایل
private int WriteToDB(string strName, string strType, ref byte[] Buffer)
{
int nFileID = 0;
// Create connection
SqlConnection dbConn = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
// Create Adapter
SqlDataAdapter dbAdapt = new SqlDataAdapter("SELECT * FROM ManuScriptTable", dbConn);
// We need this to get an ID back from the database
dbAdapt.MissingSchemaAction = MissingSchemaAction.AddWithKey;
// Create and initialize CommandBuilder
SqlCommandBuilder dbCB = new SqlCommandBuilder(dbAdapt);
// Open Connection
dbConn.Open();
// New DataSet
DataSet dbSet = new DataSet();
// Populate DataSet with data
dbAdapt.Fill(dbSet, "ManuScriptTable");
// Get reference to our table
DataTable dbTable = dbSet.Tables["ManuScriptTable"];
// Create new row
DataRow dbRow = dbTable.NewRow();
// Store data in the row
dbRow["Title"] = strName;
dbRow["Size"] = Buffer.Length;
dbRow["ContentType"] = strType;
dbRow["Text"] = Buffer;
// Add row back to table
dbTable.Rows.Add(dbRow);
// Update data source
dbAdapt.Update(dbSet, "ManuScriptTable");
// Get newFileID
if( !dbRow.IsNull("ScriptNo") )
nFileID = (int)dbRow["ScriptNo"];
// Close connection
dbConn.Close();
// Return FileID
return nFileID;
}
این هم کد مربوط به خواندن فایل از DataBase
ShowTheFile(File_ID);
///////////
private void ShowTheFile(int FileID)
{
// Define SQL select statement
string SQL = "SELECT Size, Text, ContentType FROM ManuScriptTable WHERE ScriptNo = "
+ FileID.ToString();
// Create Connection object
SqlConnection dbConn = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
// Create Command Object
SqlCommand dbComm = new SqlCommand(SQL, dbConn);
// Open Connection
dbConn.Open();
// Execute command and receive DataReader
SqlDataReader dbRead = dbComm.ExecuteReader();
// Read row
dbRead.Read();
// Clear Response buffer
Response.Clear();
// Set ContentType to the ContentType of our file
Response.ContentType = (string)dbRead["ContentType"];
// Write data out of database into Output Stream
Response.OutputStream.Write((byte[])dbRead["Text"], 0, (int)dbRead["Size"]);
// Close database connection
dbConn.Close();
// End the page
Response.End();
}