private DataTable dt;
dt=new DataTable("GPSDATA");
ds.Tables.Add(dt);
client.ReceivedDatagram+=new NetEvent(client_ReceivedDatagram); //从服务器socket接口接收数据
private void client_ReceivedDatagram()
{
 DataRow dr = dt.NewRow();
 dr["long"] = 第一段数据;
 dr["lati"] = 第二段数据;
 dt.Rows.Add(dr);
}服务器的数据包是每秒钟一次,下面如何每十分钟一次更新oracle数据库?
请给出代码。先谢谢了。

解决方案 »

  1.   

    private void client_ReceivedDatagram()
    {
        DataRow dr = dt.NewRow();
        dr["long"] = 第一段数据;
        dr["lati"] = 第二段数据;
        dt.Rows.Add(dr);
        if(dt.Rows.Count == 1)
        {
           System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer();
           timer.Interval = 600000; //10分钟,1000=1秒
           timer.Start();
           timer.Tick += new EventHandler(timer_Tick);
        }
    }private void timer_Tick(object sender, EventArgs e)
    {
        // 更新数据库
    }
      

  2.   

    // 1. 连接字符串,把MyOracleDB换成应用程序及其上的DNS名
    string strConn = "Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=Username;Password=asdasd"; OleDbConnection conn = null;
    OleDbDataAdapter adapter = null;
    OleDbCommandBuilder commBuilder = null;// 更新哪个表,就写哪个表的完全查询语句 
    string strSql = "select * from table";
    try 
    {
        // 2. 创建数据库连接
        conn = new OleDbConnection(strConn);
        // 3. 创建DataAdapter和CommandBuilder
        adapter = new OleDbDataAdapter(strSql, conn);
        commBuilder = new OleDbCommandBuilder(adapter);
        adapter.InsertCommand = commBuilder.GetInsertCommand();
        adapter.DeleteCommand = commBuilder.GetDeleteCommand();
        adapter.UpdateCommand = commBuilder.GetUpdateCommand();
        // 4. 更新数据库
        adapter.Update(dt);
        // 更新完毕
        dt.AcceptChanges();
    }
    catch(Exception ex)
    {
        // 异常处理
    }
      

  3.   

    程序要实现的是:
    每秒钟接受一次数据,放入dataset中, 每10分钟将dataset中的数据插入到数据库中。数据库中保存有一年的数据(这个表大概有10G+的容量)。
    所以不能把数据库中的数据调入dataset修改之后再返回。
      

  4.   

    所以不能把数据库中的数据调入dataset修改之后再返回。偶也没调用Fill()方法呀,楼主请看清楚代码~~
      

  5.   

    fangxinggood(JustACoder)
    我不是针对你给的这段代码说的,谢谢 你给了我不少启发,
    但是更新数据库那段代码 报错:“对于不返回任何基表信息的SelectCommand不支持动态SQL生成”
    对于ADO.net不太懂,这段代码是不是只用datatable没有dataset更新数据库阿???
      

  6.   

    http://blog.csdn.net/web_gus/archive/2004/10/13/134907.aspx
      

  7.   

    大哥,直接写update语句不行吗?
      

  8.   

    楼上大哥,我是新手不太熟悉,
    我写的update语句都实现不了,
    帮忙给一下代码吧
      

  9.   

    // 2. 创建数据库连接
        conn = new OleDbConnection(strConn);
        // 3. 创建DataAdapter和CommandBuilder
        adapter = new OleDbDataAdapter(strSql, conn);
        commBuilder = new OleDbCommandBuilder(adapter);
        adapter.InsertCommand = commBuilder.GetInsertCommand();
        adapter.DeleteCommand = commBuilder.GetDeleteCommand();
        adapter.UpdateCommand = commBuilder.GetUpdateCommand();
        // 4. 更新数据库
        adapter.Update(dt);
        // 更新完毕
        dt.AcceptChanges();
    用fangxinggood(JustACoder)大哥的代码,还是报错:
    “对于不返回任何基表信息的SelectCommand不支持动态SQL生成”数据库中表和DataTable的名称和列名称完全相同,也设置了主键,
    为什么还会出错???