c# 把数据库表中的某一列赋值到另一个表中的某一列

Il Mare 2019-04-16 10:14:24
采用update语句更新数据库一列,但是实现的结果出错,全成了一样的,哪里出了问题
代码如下
string sql = "update MATPractice set MATPractice.采样时间 = FYA02201109228.采样时间 from FYA02201109228";
comm.CommandText = sql;
comm.ExecuteNonQuery();
conn.Close();

运行结果如下,时间列都成了一样的了,这个是原表的第一个数
...全文
2210 35 打赏 收藏 转发到动态 举报
写回复
用AI写文章
35 条回复
切换为时间正序
请发表友善的回复…
发表回复
Il Mare 2019-04-18
  • 打赏
  • 举报
回复
引用 42 楼 Ever9999 的回复:
怎么才可以有积分?
我也不太清楚,好像回复别人帖子会有
Chenastron 2019-04-17
  • 打赏
  • 举报
回复
我觉得楼主需要补一下sql
Il Mare 2019-04-17
  • 打赏
  • 举报
回复
引用 26 楼 正怒月神 的回复:
[quote=引用 25 楼 Il Mare 的回复:]
[quote=引用 23 楼 正怒月神 的回复:]
首先,你要说明更新的条件是什么,
按照什么来更新。
哪怕是第一行对第一行,这样更新,也是一种更新规则。

你先说明白了,我们在讨论怎么更新

是这样的,表格A有“时间”列,表格B也有“时间”列,我要把表格A时间列的数据更新到表格B的‘时间’列中,其顺序和行位置要求不变。就是一行对应一行这种
[/quote]
在没有唯一标识列的时候,你就通过游标去更新吧[/quote]谢谢,我看一下,没接触过游标
Il Mare 2019-04-17
  • 打赏
  • 举报
回复
引用 27 楼 wanghui0380 的回复:
不写具体的了,只伪代码表示一下
select into 新表 A RowNum() left join B RowNum();接着删除旧表

意思是新建一个表格,把A和B的数据放进去?是这样么?
wanghui0380 2019-04-17
  • 打赏
  • 举报
回复
不写具体的了,只伪代码表示一下 select into 新表 A RowNum() left join B RowNum();接着删除旧表
正怒月神 2019-04-17
  • 打赏
  • 举报
回复
引用 25 楼 Il Mare 的回复:
[quote=引用 23 楼 正怒月神 的回复:] 首先,你要说明更新的条件是什么, 按照什么来更新。 哪怕是第一行对第一行,这样更新,也是一种更新规则。 你先说明白了,我们在讨论怎么更新
是这样的,表格A有“时间”列,表格B也有“时间”列,我要把表格A时间列的数据更新到表格B的‘时间’列中,其顺序和行位置要求不变。就是一行对应一行这种 [/quote] 在没有唯一标识列的时候,你就通过游标去更新吧
Il Mare 2019-04-17
  • 打赏
  • 举报
回复
引用 23 楼 正怒月神 的回复:
首先,你要说明更新的条件是什么,
按照什么来更新。
哪怕是第一行对第一行,这样更新,也是一种更新规则。

你先说明白了,我们在讨论怎么更新

是这样的,表格A有“时间”列,表格B也有“时间”列,我要把表格A时间列的数据更新到表格B的‘时间’列中,其顺序和行位置要求不变。就是一行对应一行这种
Il Mare 2019-04-17
  • 打赏
  • 举报
回复
引用 21 楼 baidu_27549073 的回复:
需要两个东西,
使用的数据源是什么样。
你需要的数据是什么样。

是这样的,表格A有“时间”列,表格B也有“时间”列,我要把表格A时间列的数据更新到表格B的‘时间’列中,其顺序和行位置要求不变。
正怒月神 2019-04-17
  • 打赏
  • 举报
回复
首先,你要说明更新的条件是什么, 按照什么来更新。 哪怕是第一行对第一行,这样更新,也是一种更新规则。 你先说明白了,我们在讨论怎么更新
baidu_27549073 2019-04-17
  • 打赏
  • 举报
回复
需要两个东西, 使用的数据源是什么样。 你需要的数据是什么样。
weixin_43926542 2019-04-17
  • 打赏
  • 举报
回复
你这相当于把表01的A列赋值给了表01的A列,肯定都一样啊
Il Mare 2019-04-17
  • 打赏
  • 举报
回复
谢谢大佬们的回复,问题基本解决了,学到了新知识啊,再次谢谢各位了!!!!
Il Mare 2019-04-17
  • 打赏
  • 举报
回复
引用 31 楼 baidu_27549073 的回复:
[quote=引用 24 楼 Il Mare 的回复:]
是这样的,表格A有“时间”列,表格B也有“时间”列,我要把表格A时间列的数据更新到表格B的‘时间’列中,其顺序和行位置要求不变。

有没有ID可以保证顺序,如果没有可作为排序的依据,则是不可能实现的。
比如 插入了数据1 在插入了数据2,在查询时,数据2可能反而跑断数据1上面去了。也就是说本来无顺序的数据,自然不具有保证顺序的前提。
如果有其他列作为顺序,可以这样联合查询,然后插入其他表,然后将原表删除,将新表改名。更新的话需要写循环,有点麻烦。

SELECT a.* ,
b.时间
FROM ( SELECT * ,
ROW_NUMBER() OVER ( ORDER BY 排序依据字段 DESC ) AS rowNum
FROM 无时间的表
) a
LEFT JOIN ( SELECT * ,
ROW_NUMBER() OVER ( ORDER BY 排序依据字段 DESC ) AS rowNum
FROM 有时间的表
) b ON a.rownum = b.rownum
[/quote]
多谢啦,正是没有ID造成这个困难,我用您说的先试一下,学一下
wanghui0380 2019-04-17
  • 打赏
  • 举报
回复
么有排序也成啊,只是感觉出事的概率比较大 唉楼主在现场演示“从删库到跑路是怎么练成”的 不排序可以SELECT ID_Num = IDENTITY(int, 1, 1) 这样也能强行加一个列来
Il Mare 2019-04-17
  • 打赏
  • 举报
回复
引用 30 楼 Chenastron 的回复:
我觉得楼主需要补一下sql

是的,其实我不是学计算机的,老师这边有个项目要用,让我临时学的,很多不懂的。。。。
baidu_27549073 2019-04-17
  • 打赏
  • 举报
回复
引用 24 楼 Il Mare 的回复:
是这样的,表格A有“时间”列,表格B也有“时间”列,我要把表格A时间列的数据更新到表格B的‘时间’列中,其顺序和行位置要求不变。
有没有ID可以保证顺序,如果没有可作为排序的依据,则是不可能实现的。 比如 插入了数据1 在插入了数据2,在查询时,数据2可能反而跑断数据1上面去了。也就是说本来无顺序的数据,自然不具有保证顺序的前提。 如果有其他列作为顺序,可以这样联合查询,然后插入其他表,然后将原表删除,将新表改名。更新的话需要写循环,有点麻烦。

SELECT  a.* ,
        b.时间
FROM    ( SELECT    * ,
                    ROW_NUMBER() OVER ( ORDER BY 排序依据字段 DESC ) AS rowNum
          FROM      无时间的表
        ) a
        LEFT JOIN ( SELECT  * ,
                            ROW_NUMBER() OVER ( ORDER BY 排序依据字段 DESC ) AS rowNum
                    FROM    有时间的表
                  ) b ON a.rownum = b.rownum
Il Mare 2019-04-16
  • 打赏
  • 举报
回复
引用 11 楼 weixin_44926841 的回复:
那不行,实现不了。

那能通过其他的办法实现么。我这个数据时处理之后insert进这个表的,时间这一列该如何复制过来呢
weixin_44926841 2019-04-16
  • 打赏
  • 举报
回复
那不行,实现不了。
Il Mare 2019-04-16
  • 打赏
  • 举报
回复
引用 9 楼 weixin_44926841 的回复:
对应关系呢?这两个表之间的数据根据什么关联对应呢?

木有。。。。后边数据不一样。。。。这两个表只有这一列是相通的,但是这一列要更新,就没了对应关系
weixin_44926841 2019-04-16
  • 打赏
  • 举报
回复
对应关系呢?这两个表之间的数据根据什么关联对应呢?
加载更多回复(15)

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧