http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 3140|回复: 3
打印 上一主题 下一主题

[Access] 将一个数据库中查询到的数据插入到另一个数据库中的相对应的表时出错

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-7 13:53:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式



            string ptSqlStr = "select * from " + ptTableName + " where " + pesPointNum + " in(" +   PipeUtility.MegerPesPointNames(pesPointName) + ") order by " + pesPointNum;

            OleDbCommand command = new OleDbCommand(ptSqlStr);
            OleDbDataAdapter adapter = new OleDbDataAdapter();
            adapter.SelectCommand = new OleDbCommand(ptSqlStr, connection);
            DataSet ds = new DataSet();
            adapter.Fill(ds,ptTableName);


            string mSqlstr = "select * from " + ptTableName;
            OleDbDataAdapter newAdapter = new OleDbDataAdapter();
            OleDbCommand newCmd=new OleDbCommand(mSqlstr  ,newConnection);
            newAdapter.InsertCommand = newCmd;
            OleDbCommandBuilder ff = new OleDbCommandBuilder(newAdapter);
            try
            {
                newAdapter.Update(ds, ptTableName);
            }
            catch
            {
              出错:Update unable to find TableMapping['DSPOINT'] or DataTable 'DSPOINT'.
            }

在更新另一个数据库时出错 错误原因为Update unable to find TableMapping['DSPOINT'] or DataTable 'DSPOINT' ,我在网上查了一下,也没有结果,请教是什么原因?





1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
沙发
发表于 2013-4-7 14:17:39 | 只看该作者
如果你的Ds里只有一个表的话我建议你直接使用这个方法
[code=csharp]public DataSet CreateCmdsAndUpdate(string connectionString,
    string queryString)
{
    using (OleDbConnection connection = new OleDbConnection(connectionString))
    {
        OleDbDataAdapter adapter = new OleDbDataAdapter();
        adapter.SelectCommand = new OleDbCommand(queryString, connection);
        OleDbCommandBuilder builder = new OleDbCommandBuilder(adapter);

        connection.Open();

        DataSet customers = new DataSet();
        adapter.Fill(customers);

        //code to modify data in dataset here

        adapter.Update(customers);

        return customers;
    }
}[/code]
当然也可以使用下面的方法,楼主自己对比一下吧,或者直接使用我的方法看看
[code=csharp]public DataSet CreateCmdsAndUpdate(string connectionString,
    string queryString, string tableName)
{
    using (OleDbConnection connection = new OleDbConnection(connectionString))
    {
        OleDbDataAdapter adapter = new OleDbDataAdapter();
        adapter.SelectCommand = new OleDbCommand(queryString, connection);
        OleDbCommandBuilder builder = new OleDbCommandBuilder(adapter);

        connection.Open();

        DataSet customers = new DataSet();
        adapter.Fill(customers);

        //code to modify data in dataset here

        adapter.Update(customers, tableName);

        return customers;
    }
}[/code]
板凳
发表于 2013-4-7 14:25:06 | 只看该作者
这个方法的异常应该很好找,因为只有下面三种可能会出现异常情况
  1. ArgumentNullException       
  2. DataSet 无效。

  3. InvalidOperationException       
  4. 源表无效。

  5. DBConcurrencyException       
  6. 试图执行 INSERT、UPDATE 或 DELETE 语句,但没有记录受到影响。
复制代码
地板
 楼主| 发表于 2013-4-7 14:57:47 | 只看该作者
站长苏飞 发表于 2013-4-7 14:17
如果你的Ds里只有一个表的话我建议你直接使用这个方法

当然也可以使用下面的方法,楼主自己对比一下吧, ...

我就是按这种方法做的,但是数据库无反应。
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-4-27 22:05

© 2014-2021

快速回复 返回顶部 返回列表