我其实是想备份数据到本地, 因为怕服务器上的数据丢失,就想将一张表整个保存在本地文件,
然后,又可以还原到数据库里去

解决方案 »

  1.   

    讲表的内容读取到dataset,dataset绑定到datagridview,我的代码是将datagridview保存到csv。
    下面是读取csv,然后保存到dataset。
    private bool ExportToCsv(DataGridView dgv, ProgressBar pb)//保存文件到csv
            {
                SaveFileDialog dlg = new SaveFileDialog();
                dlg.Filter = "CSV(逗号分隔)(*.csv)|*.csv";
                dlg.FilterIndex = 0;
                dlg.RestoreDirectory = true;
                dlg.CreatePrompt = true;
                dlg.Title = "保存为CSV(逗号分隔)文件";            if (dlg.ShowDialog() == DialogResult.OK)
                {
                    Stream myStream;
                    myStream = dlg.OpenFile();
                    StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding(-0));
                    string columnTitle = "";
                    try
                    {
                        //写入列标题   
                        for (int i = 0; i+1 < dgv.ColumnCount; i++)
                        {
                            if (i > 0)
                            {
                                columnTitle += ",";
                            }
                            columnTitle += dgv.Columns[i].HeaderText;
                        }
                        columnTitle.Remove(columnTitle.Length - 1);
                        sw.WriteLine(columnTitle);                    //写入列内容   
                        for (int j = 0; j < dgv.Rows.Count; j++)
                        {
                            string columnValue = "";
                            pb.Value = j * 100 / dgv.Rows.Count;
                            for (int k = 0; k+1 < dgv.Columns.Count; k++)
                            {                            if (k > 0)
                                {
                                    columnValue += ",";
                                }
                                if (dgv.Rows[j].Cells[k].Value == null)
                                {
                                    columnValue += "";
                                }
                                else
                                {
                                    string m = dgv.Rows[j].Cells[k].Value.ToString().Trim();
                                    columnValue += m.Replace(",", ",");
                                }
                            }
                            columnValue.Remove(columnValue.Length - 1);
                            sw.WriteLine(columnValue);
                        }
                        sw.Close();
                        myStream.Close();
                        MessageBox.Show("完成!");
                    }
                    catch (Exception e)
                    {
                        MessageBox.Show(e.ToString());
                        return false;
                    }
                    finally
                    {
                        sw.Close();
                        myStream.Close();
                    }                return true;
                }
                else
                {
                    return false;
                }
            }
    读取csv,用openFileDialog控件
    private void button1_Click(object sender, EventArgs e)//选择CSV文件
            {
                openFileDialog1.InitialDirectory = System.Windows.Forms.Application.ExecutablePath;
                openFileDialog1.Filter = "excel Files(*.csv)|*.csv|All Files(*.*)|*.*";
                if (openFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    this.textBox1.Text = openFileDialog1.FileName;
                }
            }
    string csvPath = textBox1.Text;//填充到dataset
                        string fileFullName = Path.GetFileName(csvPath);
                        string folderPath = csvPath.Substring(0, csvPath.LastIndexOf('\\') + 1);                    string connStr = string.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='text;HDR=Yes;IMEX=1'", folderPath);  //FMT=Delimited;
                        string sql = string.Format(@"SELECT * FROM [{0}]", fileFullName);  
                        OleDbDataAdapter da = new OleDbDataAdapter(sql, connStr);
                        
                        da.Fill(ds);    // 填充DataSet 
      

  2.   

    你可以使用sql数据库中的计划任务定期备份数据库
    如果你要用程序实现的话可以把数据存储在中间文件中备份到指定区域
    文件可以是LS
    说的csv,也可以用其他的xml之类的文件
    不过这样做的缺点是数据量大的话会占用很多空间
      

  3.   

    导出数据表数据到XML或EXCEL
    insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
    'Data Source="c:\Temp.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...table1 (A1,A2,A3) values (1,2,3)数据库备份
    backup database d to disk='e:\back_file\d.bak'    --将数据库备份到临时备份文件
    backup database d to bak1 with init    
      

  4.   

    将表的内容读到DataTable中,然后写成XML文件存在本地目录,以后再将XML读成DataTable,存回SQL
      

  5.   

    用DataTable吧,可以参考章立民<<C#IO操作>>一书第五章。
      

  6.   

    backup database d to bak1 with init  是什么意思啊?