How to save data from local sdf database into text file?

1.1k views Asked by At

Is there any possibility to save data from local sdf database into text file in C# ? I don't have any idea how to do it and unfortunettly I don't have a lot of time.. each row of the database must be in new line of text file

2

There are 2 answers

0
Thomas Weller On

You must do it manually (i.e. by code). MS SQL CE does not provide the import/export features that the SQL Server editions do.

0
Px Mohamed On

this is from an old project of mine it works. just change the name of the table "tableProduit" with the name of your choice. if you run into problems ask ....

using System;
using System.Data.SqlServerCe;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.IO;
using System.Reflection;
using System.Windows.Forms;
using System.Data;

namespace app
{
    class Connexion
    {
        SqlCeConnection conn;
        string connectionString;
        string chemin;
        public Connexion(string path,string password)
        {
            this.chemin = path;
            connectionString = string.Format("DataSource={0}", this.chemin + ";Password="+password);
            conn = new SqlCeConnection(connectionString); 
        }

        public bool isConnected() 
        {
            try
            {
                conn.Open();
            }catch(SqlCeException e){
                MessageBox.Show(e.ToString());
                return false;
            }
            bool temp = false;
            SqlCeDataReader dr;
            SqlCeCommand cmd = new SqlCeCommand();
            cmd.Connection = conn;
            cmd.CommandText = "SELECT * FROM tableProduit";
            dr = cmd.ExecuteReader();
            if (dr.Read())
            {
                temp = true;
            }
            else
            {
                temp = false;
            }
            dr.Close();
            conn.Close();
            return temp;
        }

        public void writeData(string filepath,string filetype)
        {
            conn.Open();
            SqlCeDataReader dr;
            SqlCeCommand cmd = new SqlCeCommand();
            SqlCeDataAdapter adpt = new SqlCeDataAdapter();
            cmd.Connection = conn;
            cmd.CommandText = "SELECT * FROM tableProduit";
            dr = cmd.ExecuteReader();
            adpt.SelectCommand = cmd;
            if (filetype == "txt")
            {
                TextWriter writer = new StreamWriter(filepath);
                while (dr.Read())
                {
                    writer.WriteLine(dr["codeBarre"] + ":" + dr["qte"]);
                }
                writer.Close();
            }
            else
            {
                //Create the data set and table
                DataSet ds = new DataSet("New_DataSet");
                DataTable dt = new DataTable("New_DataTable");

                //Set the locale for each
                ds.Locale = System.Threading.Thread.CurrentThread.CurrentCulture;
                dt.Locale = System.Threading.Thread.CurrentThread.CurrentCulture;
                adpt.Fill(dt);
                ds.Tables.Add(dt);
            }
            dr.Close();
            conn.Close();
        }
    }
}

Edit : forget about the fileds writer.WriteLine(dr["codeBarre"] + ":" + dr["qte"]); change them to the names of your fields.good luck