将sql2000的数据同步PDA的sqlce数据库中

PDA端的数据库一般采用的是sqlce数据库,这样与PC端的sql2000中的数据同步就变成了一个问题,如在PDA端处理,PDA端的内存,CPU等都是一个制约因素,其次他们的一个连接稳定及其间的数据传输也是一个难点.本例中通过在PC端的转化后再复制到PDA上面,这样,上面所有的问题都得到了一个有效的控制.

一,创建项目,添加引用 

二 设计界面,编写代码

程序代码

 

using  System;
using  System.Collections.Generic;
using  System.ComponentModel;
using  System.Data;
using  System.Drawing;
using  System.Text;
using  System.Windows.Forms;
using  System.Data.SqlServerCe;
using  OpenNETCF.Desktop.Communication;
using  System.IO;
using  System.Collections;

namespace  FyfjmFileChange
... {
    
public partial class MainForm : Form
    
...{
        
string _strCurrentDirectory = System.IO.Directory.GetCurrentDirectory();
        RAPI m_rapi 
= new RAPI();
        
private ArrayList _arrData = new ArrayList();
        
private string[] Temp;
        
private int sign;

        
public MainForm()
        
...{
            InitializeComponent();
        }


        
private void btOpenFile_Click(object sender, EventArgs e)
        
...{
            
if (openFileDialog.ShowDialog() == DialogResult.OK)
            
...{
                tbSourceLoadFile.Text 
= openFileDialog.FileName;
            }

        }


        
private void btSaveFile_Click(object sender, EventArgs e)
        
...{
            
if (saveFileDialog.ShowDialog() == DialogResult.OK)
            
...{
                tbLoadPurposeFile.Text 
= saveFileDialog.FileName;
            }

        }


        
private void btUp1Load_Click(object sender, EventArgs e)
        
...{
            sign 
= 1;
            lbDownLoadState.Text 
= "Status:Ready Up……";

            Cursor.Current 
= Cursors.WaitCursor;

            DataAcess.DisConnection();

            
if (tbLoadPurposeFile.Text.Trim().Length > 0 && tbPdaSourceFile.Text.Trim().Length > 0)
            
...{
                
try
                
...{
                    lbDownLoadState.Text 
= "Status:Copying the File……";

                    m_rapi.Connect(
false-1);
                    m_rapi.CopyFileFromDevice(_strCurrentDirectory 
+ @"DataBaseFyfjm.sdf", tbPdaSourceFile.Text.Trim() + @"DataBaseFyfjm.sdf"true);
                    m_rapi.Disconnect();

                    lbDownLoadState.Text 
= "Status:Changing the File……";

                    
if (FileFormCeDataBase(tbLoadPurposeFile.Text.Trim()))
                    
...{
                        MessageBox.Show(
"File Update successful""System Message");

                        lbDownLoadState.Text 
= "Status:Successful……";
                    }

                    
else
                    
...{
                        MessageBox.Show(
"DataFile Change Failed""System Message");

                        lbDownLoadState.Text 
= "Status:Failed……";
                    }

                }

                
catch (RAPIException ex)
                
...{
                    System.Windows.Forms.MessageBox.Show(ex.Message, 
"System Message");

                    lbDownLoadState.Text 
= "Status:Failed……";
                }

            }


            Cursor.Current 
= Cursors.Default;
        }


        
private void btDownLoadStop_Click(object sender, EventArgs e)
        
...{
            Close();
        }


        
private void btDownLoad_Click(object sender, EventArgs e)
        
...{
            Cursor.Current 
= Cursors.WaitCursor;

            
if (tbSourceLoadFile.Text.Trim().Length > 0 && tbPdaPurposeFile.Text.Trim().Length > 0)
            
...{
                
if (MessageBox.Show("Are you Sure to clear the SKU data""System Message", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.OK)
                
...{
                    
try
                    
...{
                        SqlCeConnection _objConn 
= DataAcess.CreateConnection(_strCurrentDirectory + @"DataBaseFyfjm.sdf");
                        
string _strSQL = "delete from Enquiry";

                        SqlCeCommand _objComm 
= _objConn.CreateCommand();
                        _objComm.CommandText 
= _strSQL;
                        _objComm.CommandType 
= CommandType.Text;
                        _objComm.ExecuteNonQuery();
                    }

                    
catch (SqlCeException ex)
                    
...{
                        MessageBox.Show(
"Delete data Failed" + ex.Message, "System Message", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                        
return;
                    }

                }


                
if (File.Exists(tbSourceLoadFile.Text.Trim()) && FileToCeDataBase(tbSourceLoadFile.Text.Trim()))
                
...{
                    
try
                    
...{
                        DataAcess.Dispose();           
//在复制之前要关闭数据库
                        
//                        while (DataAcess._objConn.State == ConnectionState.Closed)
                        
//                        {
                        m_rapi.Connect(false-1);
                        m_rapi.CopyFileToDevice(_strCurrentDirectory 
+ @"DataBaseFyfjm.sdf", tbPdaPurposeFile.Text.Trim() + @"DataBaseFyfjm.sdf"true);
                        m_rapi.Disconnect();
                        MessageBox.Show(
"Down File to device successful""System Message");
                        
//                        }
                    }

                    
catch (RAPIException ex)
                    
...{
                        System.Windows.Forms.MessageBox.Show(ex.Message, 
"System Message");
                    }

                    
//}
                }

                
else
                
...{
                    MessageBox.Show(
"The SourceFile not exist""System Message", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                }


                Cursor.Current 
= Cursors.Default;
                DownLoadProgressBar.Value 
= 0;
            }

        }


        
private void UpStop_Click(object sender, EventArgs e)
        
...{
            Close();
        }


        
private bool SaveTxt(string strFilePath)
        
...{
            
bool _bResult = false;
            DataSet _objDs 
= new DataSet();
            
try
            
...{
                SqlCeConnection _objConn 
= DataAcess.CreateConnection(_strCurrentDirectory + @"DataBaseFyfjm.sdf");
                SqlCeCommand _objComm 
= _objConn.CreateCommand();
                _objComm.CommandText 
= "SELECT SKU FROM Take where Take_sign =  '0'";
                _objComm.CommandType 
= CommandType.Text;
                SqlCeDataAdapter _objDa 
= new SqlCeDataAdapter(_objComm);
                SqlCeCommandBuilder _objCb 
= new SqlCeCommandBuilder(_objDa);
                _objDa.Fill(_objDs);

                UpLoadProgressBar.Maximum 
= _objDs.Tables[0].Rows.Count;
                UpLoadProgressBar.Step 
= 0;

                System.IO.StreamWriter _objWriter 
= new StreamWriter(strFilePath, false, System.Text.Encoding.UTF8);

                
int i = 0;
                
foreach (DataRow _objDr in _objDs.Tables[0].Rows)
                
...{
                    
string _sLine = _objDr[0+ "," + "1";
                    _objWriter.WriteLine(_sLine);

                    i
++;
                    UpLoadProgressBar.Value 
= i;
                }

                _objWriter.Close();

                DataAcess.Close();
                _objConn.Close();
                _objConn.Dispose();
                _objConn 
= null;
                _objComm.Dispose();
                _bResult 
= true;
                
            }

            
catch (SqlCeException ex)
            
...{
                MessageBox.Show(ex.Message, 
"系统提示:", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
            }

            
catch (Exception ex1)
            
...{
                MessageBox.Show(ex1.Message, 
"系统提示:", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
            }


            
return _bResult;
        }


        
private bool FileFormCeDataBase(string strFilePath)
        
...{
            
bool _bResult = false;
            
string[] _strTemp = strFilePath.Split('.');
            
string _strFileStype = _strTemp[_strTemp.Length - 1];
            
switch (_strFileStype.ToUpper())
            
...{
                
/**//*case "XLS":
                    _bResult = SaveXLS(strFilePath);
                    break;
                case "CSV":
                    _bResult = SaveCSV(strFilePath);
                    break;
*/

                
case "TXT":
                    
switch (sign)
                    
...{
                        
case 1:
                            _bResult 
= SaveTxt(strFilePath);
                            
break;
                        
case 2:
                            _bResult 
= SumSaveTxt(strFilePath);
                            
break;
                        
case 3:
                            _bResult 
= AllSaveTxt(strFilePath);
                            
break;
                        
default:
                            
break;
                    }

                    
break;
                
default:
                    
...{
                        MessageBox.Show(
"File Format Error""System Message", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                        
break;
                    }

            }


            UpLoadProgressBar.Value 
= 0;

            
return _bResult;
        }


        
private bool FileToCeDataBase(string strFilePath)
        
...{
            
bool _bResult = false;
            
try
            
...{
                _arrData 
= new ArrayList();
                System.IO.StreamReader objectReader 
= new System.IO.StreamReader(strFilePath, System.Text.Encoding.UTF8);
                
string sLine = "";

                
while (sLine != null)
                
...{
                    sLine 
= objectReader.ReadLine();
                    
if (sLine != null)
                    
...{
                        _arrData.Add(sLine);
                    }

                }

                objectReader.Close();
            }

            
catch (Exception ex)
            
...{
                MessageBox.Show(ex.Message, 
"系统提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
            }


            SqlCeConnection _objConn 
= DataAcess.CreateConnection(_strCurrentDirectory + @"DataBaseFyfjm.sdf");
            SqlCeCommand _objComm 
= _objConn.CreateCommand();

            DownLoadProgressBar.Maximum 
= _arrData.Count;
            DownLoadProgressBar.Step 
= 1;

            
for (int j = 0; j < _arrData.Count; j++)
            
...{
                Temp 
= _arrData[j].ToString().Trim().Split(',');
                _objComm.CommandText 
= string.Format("insert into Enquiry(Code,Color,Size,Price,SKU) values('{0}','{1}','{2}','{3}','{4}')", Temp[0].Trim(), Temp[1].Trim(), Temp[2].Trim(), Temp[3].Trim(), Temp[4].Trim());
                _objComm.ExecuteNonQuery();

                DownLoadProgressBar.Value
++;
            }

            _arrData.Clear();
            _bResult 
= true;

            _objConn.Close();
            _objConn.Dispose();
            _objConn 
= null;
            _objComm.Dispose();
            
return _bResult;
            
        }


        
private void btUp2Load_Click(object sender, EventArgs e)
        
...{
            sign 
= 2;
            lbDownLoadState.Text 
= "Status:Ready Up……";

            Cursor.Current 
= Cursors.WaitCursor;

            DataAcess.DisConnection();

            
if (tbLoadPurposeFile.Text.Trim().Length > 0 && tbPdaSourceFile.Text.Trim().Length > 0)
            
...{
                
try
                
...{
                    lbDownLoadState.Text 
= "Status:Copying the File……";

                    m_rapi.Connect(
false-1);
                    m_rapi.CopyFileFromDevice(_strCurrentDirectory 
+ @"DataBaseFyfjm.sdf", tbPdaSourceFile.Text.Trim() + @"DataBaseFyfjm.sdf"true);
                    m_rapi.Disconnect();

                    lbDownLoadState.Text 
= "Status:Changing the File……";

                    
if (FileFormCeDataBase(tbLoadPurposeFile.Text.Trim()))
                    
...{
                        MessageBox.Show(
"File Update successful""System Message");

                        lbDownLoadState.Text 
= "Status:Successful……";
                    }

                    
else
                    
...{
                        MessageBox.Show(
"DataFile Change Failed""System Message");

                        lbDownLoadState.Text 
= "Status:Failed……";
                    }

                }

                
catch (RAPIException ex)
                
...{
                    System.Windows.Forms.MessageBox.Show(ex.Message, 
"System Message");

                    lbDownLoadState.Text 
= "Status:Failed……";
                }

            }


            Cursor.Current 
= Cursors.Default;
        }


        
private bool SumSaveTxt(string strFilePath)
        
...{
            
bool _bResult = false;
            DataSet _objDs 
= new DataSet();
            
try
            
...{
                SqlCeConnection _objConn 
= DataAcess.CreateConnection(_strCurrentDirectory + @"DataBaseFyfjm.sdf");
                SqlCeCommand _objComm 
= _objConn.CreateCommand();
                _objComm.CommandText 
= "select SKU,Count(*)as Qty from Take where Take_sign = '0' Group By SKU";
                _objComm.CommandType 
= CommandType.Text;
                SqlCeDataAdapter _objDa 
= new SqlCeDataAdapter(_objComm);
                SqlCeCommandBuilder _objCb 
= new SqlCeCommandBuilder(_objDa);
                _objDa.Fill(_objDs);

                UpLoadProgressBar.Maximum 
= _objDs.Tables[0].Rows.Count;
                UpLoadProgressBar.Step 
= 0;

                System.IO.StreamWriter _objWriter 
= new StreamWriter(strFilePath, false, System.Text.Encoding.UTF8);

                
int i = 0;
                
foreach (DataRow _objDr in _objDs.Tables[0].Rows)
                
...{
                    
string _sLine = _objDr[0+ "," + _objDr[1];
                    _objWriter.WriteLine(_sLine);

                    i
++;
                    UpLoadProgressBar.Value 
= i;
                }

                _objWriter.Close();

                DataAcess.Close();
                _objConn.Close();
                _objConn.Dispose();
                _objConn 
= null;
                _objComm.Dispose();
                _bResult 
= true;

            }

            
catch (SqlCeException ex)
            
...{
                MessageBox.Show(ex.Message, 
"系统提示:", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
            }

            
catch (Exception ex1)
            
...{
                MessageBox.Show(ex1.Message, 
"系统提示:", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
            }


            
return _bResult;
        }


        
private void btTake_Click(object sender, EventArgs e)
        
...{
            Cursor.Current 
= Cursors.WaitCursor;
            
if (MessageBox.Show("Are you Sure to clear the Stock Take data""System Message", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.OK)
            
...{
                
try
                
...{
                    SqlCeConnection _objConn 
= DataAcess.CreateConnection(_strCurrentDirectory + @"DataBaseFyfjm.sdf");
                    
string _strSQL1 = "delete from Take";

                    SqlCeCommand _objComm 
= _objConn.CreateCommand();
                    _objComm.CommandText 
= _strSQL1;
                    _objComm.CommandType 
= CommandType.Text;
                    _objComm.ExecuteNonQuery();

                    DataAcess.Dispose();           
//在复制之前要关闭数据库
                    m_rapi.Connect(false-1);
                    m_rapi.CopyFileToDevice(_strCurrentDirectory 
+ @"DataBaseFyfjm.sdf", tbPdaPurposeFile.Text.Trim() + @"DataBaseFyfjm.sdf"true);
                    m_rapi.Disconnect();
                    MessageBox.Show(
"Delete Successful!""System Message", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
                }

                
catch (SqlCeException ex)
                
...{
                    MessageBox.Show(
"Delete data Failed" + ex.Message, "System Message", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                    
return;
                }

            }

            Cursor.Current 
= Cursors.Default;
        }


        
private void btAllclear_Click(object sender, EventArgs e)
        
...{
            
if (MessageBox.Show("Are you Sure to clear all the data""System Message", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.OK)
            
...{
                
try
                
...{
                    SqlCeConnection _objConn 
= DataAcess.CreateConnection(_strCurrentDirectory + @"DataBaseFyfjm.sdf");
                    
string _strSQL = "delete from Take";
                    
string _strSQL1 = "delete from Enquiry";

                    SqlCeCommand _objComm 
= _objConn.CreateCommand();
                    _objComm.CommandText 
= _strSQL;
                    _objComm.CommandType 
= CommandType.Text;
                    _objComm.ExecuteNonQuery();

                    _objComm.CommandText 
= _strSQL1;
                    _objComm.CommandType 
= CommandType.Text;
                    _objComm.ExecuteNonQuery();

                    DataAcess.Dispose();           
//在复制之前要关闭数据库
                    m_rapi.Connect(false-1);
                    m_rapi.CopyFileToDevice(_strCurrentDirectory 
+ @"DataBaseFyfjm.sdf", tbPdaPurposeFile.Text.Trim() + @"DataBaseFyfjm.sdf"true);
                    m_rapi.Disconnect();

                    MessageBox.Show(
"Delete Successful!""System Message", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
                }

                
catch (SqlCeException ex)
                
...{
                    MessageBox.Show(
"Delete data Failed" + ex.Message, "System Message", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                    
return;
                }

            }

        }


        
private void btUp3Load_Click(object sender, EventArgs e)
        
...{
            sign 
= 3;
            lbDownLoadState.Text 
= "Status:Ready Up……";

            Cursor.Current 
= Cursors.WaitCursor;

            DataAcess.DisConnection();

            
if (tbLoadPurposeFile.Text.Trim().Length > 0 && tbPdaSourceFile.Text.Trim().Length > 0)
            
...{
                
try
                
...{
                    lbDownLoadState.Text 
= "Status:Copying the File……";

                    m_rapi.Connect(
false-1);
                    m_rapi.CopyFileFromDevice(_strCurrentDirectory 
+ @"DataBaseFyfjm.sdf", tbPdaSourceFile.Text.Trim() + @"DataBaseFyfjm.sdf"true);
                    m_rapi.Disconnect();

                    lbDownLoadState.Text 
= "Status:Changing the File……";

                    
if (FileFormCeDataBase(tbLoadPurposeFile.Text.Trim()))
                    
...{
                        MessageBox.Show(
"File Update successful""System Message");

                        lbDownLoadState.Text 
= "Status:Successful……";
                    }

                    
else
                    
...{
                        MessageBox.Show(
"DataFile Change Failed""System Message");

                        lbDownLoadState.Text 
= "Status:Failed……";
                    }

                }

                
catch (RAPIException ex)
                
...{
                    System.Windows.Forms.MessageBox.Show(ex.Message, 
"System Message");

                    lbDownLoadState.Text 
= "Status:Failed……";
                }

            }


            Cursor.Current 
= Cursors.Default;
        }


        
private bool AllSaveTxt(string strFilePath)
        
...{
            
bool _bResult = false;
            DataSet _objDs 
= new DataSet();
            
try
            
...{
                SqlCeConnection _objConn 
= DataAcess.CreateConnection(_strCurrentDirectory + @"DataBaseFyfjm.sdf");
                SqlCeCommand _objComm 
= _objConn.CreateCommand();
                _objComm.CommandText 
= "select SKU,Zone,Take_sign from Take";
                _objComm.CommandType 
= CommandType.Text;
                SqlCeDataAdapter _objDa 
= new SqlCeDataAdapter(_objComm);
                SqlCeCommandBuilder _objCb 
= new SqlCeCommandBuilder(_objDa);
                _objDa.Fill(_objDs);

                UpLoadProgressBar.Maximum 
= _objDs.Tables[0].Rows.Count;
                UpLoadProgressBar.Step 
= 0;

                System.IO.StreamWriter _objWriter 
= new StreamWriter(strFilePath, false, System.Text.Encoding.UTF8);

                
int i = 0;
                
foreach (DataRow _objDr in _objDs.Tables[0].Rows)
                
...{
                    
string _sLine = _objDr[1+ "," + _objDr[0+ "," + "1" + "," + _objDr[2];
                    _objWriter.WriteLine(_sLine);

                    i
++;
                    UpLoadProgressBar.Value 
= i;
                }

                _objWriter.Close();

                DataAcess.Close();
                _objConn.Close();
                _objConn.Dispose();
                _objConn 
= null;
                _objComm.Dispose();
                _bResult 
= true;

            }

            
catch (SqlCeException ex)
            
...{
                MessageBox.Show(ex.Message, 
"系统提示:", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
            }

            
catch (Exception ex1)
            
...{
                MessageBox.Show(ex1.Message, 
"系统提示:", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
            }


            
return _bResult;
        }


    }

}

该程序是从文本取数据导入,如果是sql数据库,则采用数据库操作方法将数据取出,后面操作方法大体类似

 

James

http://www.cardprinterworld.com

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值