如题,不知道可行不可行,有人要求做个小工具,备份出数据库的部分数据。想了一下,感觉完全没有思路,请高手指教。

解决方案 »

  1.   

    我这之前做过,控制台的应用程序,调用执行bat处理需要参考的话留个邮箱
      

  2.   

    不知道你要的是不是这种形式的,拿去研究一下,这段代码也是实现部分数据的备份。
    如果好的话别忘了给我加分哦!            string[] m_TableName ={ "Table2", "Table1", "Logon" };
                try
                {
                    if (MessageBox.Show("确定要备份数据到E盘吗?", "备份数据", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)
                    {
                        this.Cursor = Cursors.WaitCursor;
                        for (int i = 0; i < m_TableName.Length; i++)
                        {
                            string sql;
                            sql = "EXEC master..xp_cmdshell 'bcp LightCtrDB.dbo." + m_TableName[i] + " out E:\\" + m_TableName[i] + ".txt -c -S QRSHZL -U sa -P 123'";
                            G_SqlExecute.GetExecute(sql);
                            double percentDone = ((Convert.ToDouble(i + 1) / m_TableName.Length) * 100);
                            UpdateProcess(percentDone);
                        }
                        MessageBox.Show("备份数据表成功!");
                    }
                    else
                    {
                        MessageBox.Show("备份数据失败!");
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("错误" + ex.ToString());
                }
                finally
                {
                    this.Cursor = Cursors.Default;
                    toolStripStatusLabel7.Text = null;
                    ProgressBar1.Value = 0;
                }
      

  3.   

    sql是这样可以备份,不过oracle的exp命令好像是个工具,不知道可不可以这样用,我也是新手,对这不是很清楚。
      

  4.   

    用Process,调用cmd执行导出命令
      

  5.   

    给我一份儿代码行吧,,,,
    [email protected]
      

  6.   

    用c#调用cmd.exe
    我发现存在一个问题,就是在导出全部信息,即full=y 的时候,按照上面的程序,会启动cmd.exe和exp.exe两进程,在写xxx.dmp和log文件时,会写一半就卡住不写了,除非关闭导出程序后,exp.exe会接着导出,完后才退出。请问是什么回事??
    我自己怀疑是导出时,比如导完表接着导出视图时,会有个很短暂等待过程,而这时,exp进程貌似就卡在这,不导出了
      

  7.   

    是的我也发现这个问题,我用的asp.net c# prosess 调用CMD EXP导出,在导到一半时就停了,然后我要点一下其他页面或刷新本页,才会继续导出。这是怎么回事