0

假设有一个表只包含ID, Name, CompanyRealID

我想将一行复制到另一行。例如:

ID          Name           Company         RealID

1          Marry           Company A        null
2          Jane            Company B        null
3          Watson          Company C        null
4          Marry           Company A         1
5          Watson          Company C         3

我将通过 c# 编程语言从 asp.net 执行此操作。

我的问题是:

在c#中我应该在下面做吗?

Class: UserProfile {ID, Name, Company, RealID}

代码端:

UserProfile userProfile = new UserProfile();
//I have userProfile.ID, userProfile.Name, userProfile.Company and userProfile.RealID
SqlConnection conn = new SqlConnection(sqlConnection);
SqlCommand cmd = new SqlCommand("Select * From UserProfile", conn);
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(dr);

//and with a loop, assignment to UserProfile members such as UserProfile.ID = dr[0][i]...

然后SQL查询将是

INSERT (Name, Company, RealID) 
VALUES (UserProfile.Name, UserProfile.Company, UserProfile.RealID)

我搜索了这个主题并找到了这个: Copying values from another row

但我认为我的情况不同。

或者有什么方法可以缩短这个过程?

不久:

我想从 asp.net 将 sql 中的一行复制到另一行。

感谢帮助

4

3 回答 3

2

看起来您几乎拥有所有代码,那么为什么需要快捷方式?我不知道捷径,如果数据像你的例子一样微不足道,谁在乎!把它读出来然后写出来...

于 2012-07-31T20:22:14.027 回答
1

如果这只是一行的副本并且 Id 是自动递增的,也许您只能将其作为 SQL 来执行?

INSERT INTO UserProfile (Name, Company, RealID) SELECT Name, Company, RealID FROM UserProfile WHERE ID = X

如果有选择更改的值,您也可以替换:

INSERT INTO UserProfile (Name, Company, RealID) SELECT 'New Name', Company, RealID FROM UserProfile WHERE ID = X
于 2012-07-31T22:05:41.100 回答
1

我不确定我是否正确理解了这个问题,但是如果您想将一个表中的行逐行复制到另一个表中,您可以使用 INSERT INTO,

于 2012-07-31T20:50:13.107 回答