将.txt文件作为Blob从ASP.Net MVC3存储到Mysql中

时间:2013-04-08 10:49:51

标签: mysql asp.net-mvc asp.net-mvc-3 blob

目前我正在开发ASP.NET MVC 3项目。我需要将文本(.txt)文件作为Blob存储到MySQL中。 MySQL对我来说很新。

1 个答案:

答案 0 :(得分:1)

应该类似于this(应该修改Connectionstring):

string filePath = @"C:\\MyFile.ext";

//A stream of bytes that represnts the binary file
FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);

//The reader reads the binary data from the file stream
BinaryReader reader = new BinaryReader(fs);

//Bytes from the binary reader stored in BlobValue array
byte[] BlobValue = reader.ReadBytes((int)fs.Length);

fs.Close();
reader.Close();

SqlConnection BlobsDatabaseConn = new SqlConnection("Data Source = .; Initial Catalog = BlobsDatabase; Integrated Security = SSPI");
SqlCommand SaveBlobeCommand = new SqlCommand();
SaveBlobeCommand.Connection = BlobsDatabaseConn;
SaveBlobeCommand.CommandType = CommandType.Text;
SaveBlobeCommand.CommandText = "INSERT INTO BlobsTable(BlobFileName, BlobFile)" + "VALUES (@BlobFileName, @BlobFile)";

SqlParameter BlobFileNameParam = new SqlParameter("@BlobFileName", SqlDbType.NChar); 
SqlParameter BlobFileParam = new SqlParameter("@BlobFile", SqlDbType.Binary);
SaveBlobeCommand.Parameters.Add(BlobFileNameParam);
SaveBlobeCommand.Parameters.Add(BlobFileParam);
BlobFileNameParam.Value = filePath.Substring(filePath.LastIndexOf("\\") + 1);
BlobFileParam.Value = BlobValue;
try
{
    SaveBlobeCommand.Connection.Open();
    SaveBlobeCommand.ExecuteNonQuery();
    MessageBox.Show(BlobFileNameParam.Value.ToString() + " saved to database.","BLOB Saved", MessageBoxButtons.OK, MessageBoxIcon.Information);
}

catch(Exception ex) 
{
    MessageBox.Show(ex.Message, "Save Failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

finally 
{
    SaveBlobeCommand.Connection.Close();
}

看看:

Writing BLOB Values to a Database