2009-11-15 142 views
0

我在asp.netasp.net sql查詢幫助

SqlCommand QueidCmd = new SqlCommand("select scope_identity() from table1", conn); 

我想借此輸出和它在另一個插入查詢這僅僅是它下面這個變量保存在變量 使用SQL查詢。 ..這些查詢都在循環中...可以這樣做嗎?

回答

2

首先,不要選擇SCOPE_IDENTITY()從表中;它會做錯事。

接下來,您的問題的答案的關鍵是,您可以將多個命令/查詢組合成一個單獨的SqlCommand語句,方法是用分號分隔它們。例如:

string sql = "DECLARE @scope INT;SET @scope = SCOPE_IDENTITY();UPDATE MyTable SET Val = @scope"; 
SqlCommand cmd = new SqlCommand(sql); 
cmd.ExecuteNonQuery(); 

如果你想引入變量,你應該使用參數化查詢,而不是字符串連接。

您也可以使用存儲過程 - 它們往往是更乾淨的方式。

+0

嗨thanx for ur回覆,這真的很有幫助.. – anay

2

你可以做一個SQL查詢:

DECLARE @myVariable YOUR_TYPE; 
SELECT @myVariable = SCOPE_IDENTITY() FROM table1; 
UPDATE table2 SET something = @myVariable; 
+0

yes..but這是在sql server中完成的,我希望它能在asp.net – anay

1

用途:

object retVal = QueidCmd.ExecuteScalar(); 
int pk = Convert.ToInt32(retVal); // use this in your next insert