2012-07-31 37 views
0

假设有一个表只包含ID, Name, CompanyRealID从Asp.NET将行复制到SQL Server中的另一个行

我想复制一行到另一行。对于前:

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

,但我觉得我的情况下,是不同的。

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

不久:

我想一列从SQL复制asp.net到另一个。

感谢您的帮助

回答

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 
2

看起来你很可能所有的代码,那么为什么你需要一个快捷方式?我不知道一个捷径,如果数据和你的例子一样微不足道,谁在乎!刚读出来,并把它写...

1

我不知道我理解的问题正确,但如果你想对行一个表中按行复制到另一个表中的行,你可以使用INSERT INTO,

+0

完全以同意。在“插入其他表中的数据”部分中查找[此处](http://technet.microsoft.com/zh-cn/library/dd776381(SQL.105).aspx),示例a。它更简单。 – aikixd 2012-07-31 20:53:34

+0

我认为这个例子非常清楚.. – 2012-08-01 00:25:45

相关问题