10bet网址
MySQL连接器/NET开发指南
相关的文档10bet官方网站 本手册下载

5.7.2写文件到数据库

要将文件写入数据库,需要将文件转换为字节数组,然后使用字节数组作为参数插入查询

下面的代码使用FileStream对象打开一个文件,将其读入字节数组,并将其插入文件表:

Visual Basic的例子

Dim conn As New MySqlConnection Dim cmd As New MySqlCommand Dim SQL As String Dim FileSize As UInt32 Dim rawData() As Byte Dim fs As FileStream conn. connectionstring = "server=127.0.0.1;"_ &“uid =根;”_ & " pwd = 12345;_ & "database=test" Try fs = New FileStream("c:\image.png", FileMode. png")打开,FileAccess.Read)文件大小= fs。长度rawData = New Byte(FileSize) {} fs.Read(rawData, 0, FileSize) fs.Close() conn.Open() SQL = "INSERT INTO file VALUES(NULL, @FileName, @FileSize, @File)" cmd.Connection = conn cmd.CommandText = SQL cmd.Parameters.AddWithValue("@FileName", strFileName) cmd.Parameters.AddWithValue("@FileSize", FileSize) cmd.Parameters.AddWithValue("@File", rawData) cmd.ExecuteNonQuery() MessageBox.Show("File Inserted into database successfully!", _ "Success!", MessageBoxButtons.OK, MessageBoxIcon.Asterisk) conn.Close() Catch ex As Exception MessageBox.Show("There was an error: " & ex.Message, "Error", _ MessageBoxButtons.OK, MessageBoxIcon.Error) End Try

c#示例

MySql.Data.MySqlClient.MySqlConnection康涅狄格州;MySql.Data.MySqlClient.MySqlCommand cmd;conn = new MySql.Data.MySqlClient.MySqlConnection();cmd = new MySql.Data.MySqlClient.MySqlCommand();SQL字符串;UInt32文件大小;byte [] rawData;文件流fs;conn.ConnectionString = "服务器= 127.0.0.1;uid =根;”+ " pwd = 12345;数据库=测试”; try { fs = new FileStream(@"c:\image.png", FileMode.Open, FileAccess.Read); FileSize = fs.Length; rawData = new byte[FileSize]; fs.Read(rawData, 0, FileSize); fs.Close(); conn.Open(); SQL = "INSERT INTO file VALUES(NULL, @FileName, @FileSize, @File)"; cmd.Connection = conn; cmd.CommandText = SQL; cmd.Parameters.AddWithValue("@FileName", strFileName); cmd.Parameters.AddWithValue("@FileSize", FileSize); cmd.Parameters.AddWithValue("@File", rawData); cmd.ExecuteNonQuery(); MessageBox.Show("File Inserted into database successfully!", "Success!", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); conn.Close(); } catch (MySql.Data.MySqlClient.MySqlException ex) { MessageBox.Show("Error " + ex.Number + " has occurred: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); }

的方法文件流对象用于将文件加载到字节数组中,该字节数组的大小根据长度财产的文件流对象。

对象的参数赋值后,将字节数组赋值MySqlCommand对象,ExecuteNonQuery方法调用插入到文件表格