91在线一级黄片|91视频在线观看18|成人夜间呦呦网站|91资源欧美日韩超碰|久久最新免费精品视频一区二区三区|国产探花视频在线观看|黄片真人免费三级片毛片|国产人无码视频在线|精品成人影视无码三区|久久视频爱久久免费精品

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
ADO.NET修改數(shù)據(jù)巧妙運用存儲過程實現(xiàn)

學(xué)習(xí)ADO.NET時,你可能會遇到ADO.NET修改數(shù)據(jù)問題,這里將介紹ADO.NET修改數(shù)據(jù)問題的解決方法,在這里拿出來和大家分享一下。存儲過程可以接受數(shù)據(jù)作為輸入?yún)?shù)并可以返回數(shù)據(jù)作為輸出參數(shù)、結(jié)果集或返回值。 下面的示例演示 ADO.NET 如何發(fā)送和接收輸入?yún)?shù)、輸出參數(shù)及返回值。 該示例將一條新記錄插入到一個表中,該表中的主鍵列為 SQL Server 數(shù)據(jù)庫中的標(biāo)識列。

目前創(chuàng)新互聯(lián)已為成百上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間網(wǎng)站運營、企業(yè)網(wǎng)站設(shè)計、武都網(wǎng)站維護(hù)等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

#T#如果您通過 SqlDataAdapter 使用 SQL Server 存儲過程來編輯或刪除數(shù)據(jù),則應(yīng)確保不在存儲過程定義中使用 SET NOCOUNT ON。 這將使返回的受影響的行數(shù)為零,DataAdapter 會將其解釋為并發(fā)沖突。 在這種情況下,將引發(fā) DBConcurrencyException。此示例使用以下存儲過程將一個新類別插入到 Northwind 的“類別”表。 存儲過程獲取 CategoryName 列中的值作為輸入?yún)?shù),并使用 SCOPE_IDENTITY() 函數(shù)來檢索標(biāo)識字段 CategoryID 的新值,然后在輸出參數(shù)中返回該新值。 RETURN 語句使用 @@ROWCOUNT 函數(shù)返回所插入的行數(shù)。

 
 
  1. CREATE PROCEDURE dbo.InsertCategory  
  2. @CategoryName nvarchar(15),  
  3. @Identity int OUT  
  4. AS  
  5. INSERT INTO Categories (CategoryName) VALUES(@CategoryName)  
  6. SET @Identity = SCOPE_IDENTITY()  
  7. RETURN @@ROWCOUNT 

下面的ADO.NET修改數(shù)據(jù)代碼示例使用上面顯示的 InsertCategory 存儲過程作為 SqlDataAdapter 的 InsertCommand 的來源。 如果在將記錄插入到數(shù)據(jù)庫后調(diào)用 SqlDataAdapter 的 Update 方法,DataSet 中將會反映出 @Identity 輸出參數(shù)。 此代碼還會檢索返回值。在使用 OleDbDataAdapter 時,必須在其他參數(shù)之前先使用 ReturnValue 的ParameterDirection 指定參數(shù)。

 
 
  1. Private Sub ReturnIdentity(ByVal connectionString As String)  
  2. Using connection As SqlConnection = New SqlConnection( _  
  3.  connectionString)  
  4.  
  5. ' Create a SqlDataAdapter based on a SELECT query.  
  6. Dim adapter As SqlDataAdapter = New SqlDataAdapter( _  
  7.  "SELECT CategoryID, CategoryName FROM dbo.Categories", _  
  8.  connection)  
  9.  
  10. ' Create a SqlCommand to execute the stored procedure.   
  11. adapter.InsertCommand = New SqlCommand("dbo.InsertCategory", _  
  12.  connection)  
  13. adapter.InsertCommand.CommandType = CommandType.StoredProcedure  
  14.  
  15. ' Create a parameter for the ReturnValue.  
  16. Dim parameter As SqlParameter = _ 
  17.  adapter.InsertCommand.Parameters.Add( _  
  18. "@RowCount", SqlDbType.Int)  
  19. parameter.Direction = ParameterDirection.ReturnValue  
  20.  
  21. ' Create an input parameter for the CategoryName.  
  22. ' You do not need to specify direction for input parameters.  
  23. adapter.InsertCommand.Parameters.Add( _  
  24. "@CategoryName", SqlDbType.NChar, 15, "CategoryName")  
  25.  
  26. ' Create an output parameter for the new identity value.  
  27. parameter = adapter.InsertCommand.Parameters.Add( _  
  28. "@Identity", SqlDbType.Int, 0, "CategoryID")  
  29. parameter.Direction = ParameterDirection.Output  
  30.  
  31. ' Create a DataTable and fill it.  
  32. Dim categories As DataTable = New DataTable  
  33. adapter.Fill(categories)  
  34.  
  35. ' Add a new row.  
  36. Dim newRow As DataRow = categories.NewRow()  
  37. newRow("CategoryName") = "New Category"  
  38. categories.Rows.Add(newRow)  
  39.  
  40. ' Update the database.  
  41. adapter.Update(categories)  
  42.  
  43. ' Retrieve the ReturnValue.  
  44. Dim rowCount As Int32 = _ 
  45.  CInt(adapter.InsertCommand.Parameters("@RowCount").Value)  
  46.  
  47. Console.WriteLine("ReturnValue: {0}", rowCount.ToString())  
  48. Console.WriteLine("All Rows:")  
  49. Dim row As DataRow  
  50. For Each row In categories.Rows  
  51. Console.WriteLine("{0}: {1}", row(0), row(1))  
  52. Next  
  53. End Using  
  54. End Sub  

新聞標(biāo)題:ADO.NET修改數(shù)據(jù)巧妙運用存儲過程實現(xiàn)
鏈接分享:http://m.jiaoqi3.com/article/copdecs.html