In this article we will see how to store a text file into a database and retrieve the text file from the Database. The text file will be stored into the database in the form of an array of bytes and the array of bytes will be retrieved into a text file from the database. Now we will look into the system requirements.
System Requirements
- Microsoft Visual Studio 2010.
- SQL Server 2008 R2.
We will first look into the design part first, the following snapshot shows the design of the application.
In this article I have used the code first approach to create the database. I have taken only one class named Text Data as shown below:
public class TextData
{
public int Id { get; set; }
public string FilePath { get; set; }
public byte[] TextToByte { get; set; }
}
In the preceding class the Id property is the primary key. The File Path property will take the path of the file from the system that you will browse and the TextToByte property will store the text contents from the text file into the array of bytes.
Procedure
There are three button events in total that occurr, namely browse event, store file event and retrieve file event as shown in the snapshot above. We will see how all three events work one by one.
1. Browse Button Event
When you click on the "Browse" button, an Open Dialog Box will open to select the text file. The path of the text file will be copied into the text box. The code behind for the Browse button is shown below.
private void Browse_Click(object sender, RoutedEventArgs e)
{
Database DB=new Database();
TextData exam=new TextData();
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.ShowDialog();
openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
openFileDialog1.DefaultExt = ".txt";
txtFilePath.Text = openFileDialog1.FileName;
}
In the code above I am creating an object for the Open Dialog class (the namespace is "Microsoft.Win32"), then I am calling the "ShowDialog" method of the OpenFileDialog Class.The Open dialog box is as shown in the following snapshot.
After Selecting the text file, when you click on the "Open" button the system path of the text file is stored in the text box as shown in the following snapshot.
Store Button Event
After selecting the text file, when you click on the store file button, the text file contents will be stored into the database in the form of an array of bytes. The Code behind for the store file event is shown below.
private void Store_Click(object sender, RoutedEventArgs e)
{
Database DB = new Database();
TextData exam = new TextData();
exam.FilePath = txtFilePath.Text;
exam.TextToByte = File.ReadAllBytes(txtFilePath.Text);
DB.TextFile.Add(exam);
DB.SaveChanges();
}
The following snapshot shows how the text file contents is converted into an array of bytes and the database details.
Retrieve Button Event
When you click on the retrieve button, the text file contents is stored in the database in the form of an array of bytes, again encoded into text using the following code.
private void Retrieve_Click(object sender, RoutedEventArgs e)
{
Database DB = new Database();
TextData exam = new TextData();
var result = (from t in DB.TextFile
where t.FilePath==txtFilePath.Text
select t.TextToByte).FirstOrDefault();
var ss = System.Text.Encoding.Default.GetString(result);
richTextBox1.AppendText(ss);
}
The encoded text file contents will be added to the rich text box using the code above of the retrieve button event. The following snapshot shows the file contents in a rich text box.
Summary
In this article I have shown how to store a text file into a database in the form of an array of bytes and again retrieve the array of bytes into text form. If you have any queries then please do comment and thank you for reading my article.