表A
pointname pointValue
A 1
B 2
C 3
D 4
现已实现将表A中的数据完整的复制到B中。如下
表B(字段id自增,没有数据)
id pointname pointValue
1 A 1
2 B 2
3 C 3
4 D 4
我现在想实现的是—>将表A的新增部分添加到表B中。(我要用Timer控件定时刷新操作,所以每次都复制整张表是错的)举个例子:
表A
pointname pointValue
A 1
B 2
C 3
D 4表B
id pointname pointValue
1 A 1
2 B 2
这种情况下,当我点击程序中按钮的时候,只从表A中取出最后两行的数据,插入到表B中。PS:表A不允许增加新字段,表B允许添加新字段(能不添加字段实现更好)。不知道这种情况能不能实现我想要的功能!!
希望高手指点!!!
万分感激!!!!!
表B(字段id自增,没有数据)
id pointname pointValue
1 A 1
2 B 2
3 C 3
4 D 4改成—>表B(字段id自增)
id pointname pointValue
1 A 1
2 B 2
3 C 3
4 D 4
SqlConnection conn2 = new SqlConnection();
OdbcCommand cmd1 = new OdbcCommand();
SqlCommand cmd2 = new SqlCommand();
System.Data.Odbc.OdbcDataReader dr;
conn1.ConnectionString = connnectionString2;
conn2.ConnectionString = connnectionString; cmd1.Connection = conn1;
cmd2.Connection = conn2;
cmd1.CommandText = "SELECT Value,LastModified,Persist,DatapointID,PropID FROM DBA.DatapointValue";
conn1.Open();
dr = cmd1.ExecuteReader();
conn2.Open();
while (dr.Read())
{
string insertString = "INSERT INTO DatapointValue2(Value,LastModified,Persist,DatapointID,PropID) VALUES ('{0}','{1}','{2}','{3}','{4}')";
insertString = string.Format(insertString, dr[0], dr[1], dr[2], dr[3], dr[4]); cmd2.CommandText = insertString;
cmd2.ExecuteNonQuery();
}
dr.Close();
conn1.Close();
conn2.Close();
假设pointValue唯一
表A
pointname pointValue
A 1
B 1
C 3
D 4
D 3表B
id pointname pointValue
1 A 1
2 B 2
3 C 2
4 D 3
不知道LZ是不是没说清呢,还是跟我这一样的,pointname pointValue 两个值任何一个不同都要加到B里去撒?我不会,请假大鸟,搭便车问下。
表B是SQLServer中的表
表A中PropID和DatapointID这两个字段前面都显示有“钥匙” 大概意思应该是这两个联合做主键吧。是不是有必要..对应的表B我是不是应该也联合一下啊 怎么联合?(如果没有这个必要可以不做)
这是联合主键,这不是关键的,关键是你A和B表是怎么关联的。。中间的关联字段是否是唯一的
在数据库db1中要查询数据库db2的数据,相同服务器,同类型数据库是这么联表的
select a.*,b.* from a join db2..b c on c.id=a.id
id
,name
,address
)
select id+(select max(id) from tbs_xscj )
,name
,address
from tbs_xscj_hz
去看了下那玩意的用法。
Value varchar 255 允许空
LastModified doble 允许空
Persist smallint 允许空
【钥匙】 PropID intger 不许空
【钥匙】 DatapointID intger 不许空
这是表A字段的名字和类型表B是由我自己来设计的
【钥匙】 PropID intger 不许空
【钥匙】 DatapointID intger 不许空
这两个合起来称为唯一键