{"id":171629,"date":"2024-11-07T04:20:19","date_gmt":"2024-11-06T20:20:19","guid":{"rendered":"https:\/\/server.hk\/cnblog\/171629\/"},"modified":"2024-11-07T04:20:20","modified_gmt":"2024-11-06T20:20:20","slug":"vb-%e9%80%a3%e6%8e%a5-sql-server%ef%bc%9a%e9%96%8b%e7%99%bc%e6%96%b0%e6%8a%80%e8%a1%93%e5%af%a6%e7%8f%be%e8%b7%a8%e5%b9%b3%e5%8f%b0%e9%80%9a%e8%a8%8a%ef%bc%88vb-%e9%80%a3-sqlserver%ef%bc%89","status":"publish","type":"post","link":"https:\/\/server.hk\/cnblog\/171629\/","title":{"rendered":"VB \u9023\u63a5 SQL Server\uff1a\u958b\u767c\u65b0\u6280\u8853\u5be6\u73fe\u8de8\u5e73\u53f0\u901a\u8a0a\uff08vb \u9023 sqlserver\uff09"},"content":{"rendered":"<h1 id=\"vb-%e9%80%a3%e6%8e%a5-sql-server%ef%bc%9a%e9%96%8b%e7%99%bc%e6%96%b0%e6%8a%80%e8%a1%93%e5%af%a6%e7%8f%be%e8%b7%a8%e5%b9%b3%e5%8f%b0%e9%80%9a%e8%a8%8a-PnQzkkZSvr\">VB \u9023\u63a5 SQL Server\uff1a\u958b\u767c\u65b0\u6280\u8853\u5be6\u73fe\u8de8\u5e73\u53f0\u901a\u8a0a<\/h1>\n<p>\u5728\u7576\u4eca\u7684\u8edf\u9ad4\u958b\u767c\u74b0\u5883\u4e2d\uff0c\u8de8\u5e73\u53f0\u901a\u8a0a\u8b8a\u5f97\u8d8a\u4f86\u8d8a\u91cd\u8981\u3002Visual Basic\uff08VB\uff09\u4f5c\u70ba\u4e00\u7a2e\u5ee3\u6cdb\u4f7f\u7528\u7684\u7de8\u7a0b\u8a9e\u8a00\uff0c\u7d93\u5e38\u88ab\u7528\u65bc\u958b\u767c\u684c\u9762\u61c9\u7528\u7a0b\u5f0f\u548c\u4f01\u696d\u89e3\u6c7a\u65b9\u6848\u3002\u7576\u9700\u8981\u8207 SQL Server \u6578\u64da\u5eab\u9032\u884c\u4ea4\u4e92\u6642\uff0c\u958b\u767c\u8005\u9700\u8981\u638c\u63e1\u5982\u4f55\u6709\u6548\u5730\u9023\u63a5\u548c\u64cd\u4f5c\u6578\u64da\u3002\u672c\u6587\u5c07\u63a2\u8a0e VB \u9023\u63a5 SQL Server \u7684\u65b9\u6cd5\uff0c\u4e26\u4ecb\u7d39\u4e00\u4e9b\u65b0\u6280\u8853\u4ee5\u5be6\u73fe\u66f4\u9ad8\u6548\u7684\u8de8\u5e73\u53f0\u901a\u8a0a\u3002<\/p>\n<h2 id=\"vb-%e9%80%a3%e6%8e%a5-sql-server-%e7%9a%84%e5%9f%ba%e6%9c%ac%e6%96%b9%e6%b3%95-PnQzkkZSvr\">VB \u9023\u63a5 SQL Server \u7684\u57fa\u672c\u65b9\u6cd5<\/h2>\n<p>\u5728 VB \u4e2d\u9023\u63a5 SQL Server \u901a\u5e38\u4f7f\u7528 ADO.NET \u6216 OLE DB\u3002\u9019\u4e9b\u6280\u8853\u63d0\u4f9b\u4e86\u5f37\u5927\u7684\u6578\u64da\u8a2a\u554f\u529f\u80fd\uff0c\u80fd\u5920\u652f\u6301\u5404\u7a2e\u6578\u64da\u64cd\u4f5c\u3002\u4ee5\u4e0b\u662f\u4f7f\u7528 ADO.NET \u9023\u63a5 SQL Server \u7684\u57fa\u672c\u6b65\u9a5f\uff1a<\/p>\n<pre><code>Imports System.Data.SqlClient\n\nModule Module1\n    Sub Main()\n        Dim connectionString As String = \"Server=your_server;Database=your_database;User Id=your_username;Password=your_password;\"\n        Using connection As New SqlConnection(connectionString)\n            Try\n                connection.Open()\n                Console.WriteLine(\"\u9023\u63a5\u6210\u529f\uff01\")\n            Catch ex As Exception\n                Console.WriteLine(\"\u9023\u63a5\u5931\u6557\uff1a\" &amp; ex.Message)\n            End Try\n        End Using\n    End Sub\nEnd Module\n<\/code><\/pre>\n<p>\u5728\u4e0a\u8ff0\u4ee3\u78bc\u4e2d\uff0c\u958b\u767c\u8005\u9700\u8981\u66ff\u63db\u9023\u63a5\u5b57\u7b26\u4e32\u4e2d\u7684\u4f3a\u670d\u5668\u540d\u7a31\u3001\u6578\u64da\u5eab\u540d\u7a31\u3001\u7528\u6236\u540d\u548c\u5bc6\u78bc\u3002\u4f7f\u7528 <code>Using<\/code> \u8a9e\u53e5\u53ef\u4ee5\u78ba\u4fdd\u5728\u4f7f\u7528\u5b8c\u9023\u63a5\u5f8c\u81ea\u52d5\u95dc\u9589\u3002<\/p>\n<h2 id=\"%e4%bd%bf%e7%94%a8-entity-framework-%e9%80%b2%e8%a1%8c%e6%95%b8%e6%93%9a%e6%93%8d%e4%bd%9c-PnQzkkZSvr\">\u4f7f\u7528 Entity Framework \u9032\u884c\u6578\u64da\u64cd\u4f5c<\/h2>\n<p>Entity Framework\uff08EF\uff09\u662f\u4e00\u500b\u5f37\u5927\u7684 ORM\uff08\u5c0d\u8c61\u95dc\u4fc2\u6620\u5c04\uff09\u6846\u67b6\uff0c\u80fd\u5920\u7c21\u5316\u6578\u64da\u5eab\u64cd\u4f5c\u3002\u4f7f\u7528 EF\uff0c\u958b\u767c\u8005\u53ef\u4ee5\u901a\u904e\u5c0d\u8c61\u4f86\u64cd\u4f5c\u6578\u64da\uff0c\u800c\u4e0d\u5fc5\u76f4\u63a5\u7de8\u5beb SQL \u8a9e\u53e5\u3002\u4ee5\u4e0b\u662f\u4f7f\u7528 EF \u9023\u63a5 SQL Server \u7684\u793a\u4f8b\uff1a<\/p>\n<pre><code>Imports System.Data.Entity\n\nPublic Class MyDbContext\n    Inherits DbContext\n    Public Property Users As DbSet(Of User)\nEnd Class\n\nPublic Class User\n    Public Property Id As Integer\n    Public Property Name As String\nEnd Class\n\nModule Module1\n    Sub Main()\n        Using context As New MyDbContext()\n            Dim users = context.Users.ToList()\n            For Each user In users\n                Console.WriteLine(user.Name)\n            Next\n        End Using\n    End Sub\nEnd Module\n<\/code><\/pre>\n<p>\u5728\u9019\u500b\u793a\u4f8b\u4e2d\uff0c\u958b\u767c\u8005\u5b9a\u7fa9\u4e86\u4e00\u500b <code>MyDbContext<\/code> \u985e\uff0c\u4e26\u901a\u904e <code>DbSet<\/code> \u5c6c\u6027\u4f86\u8a2a\u554f <code>User<\/code> \u8868\u3002\u9019\u6a23\u7684\u8a2d\u8a08\u4f7f\u5f97\u6578\u64da\u64cd\u4f5c\u66f4\u52a0\u76f4\u89c0\u548c\u7c21\u55ae\u3002<\/p>\n<h2 id=\"%e8%b7%a8%e5%b9%b3%e5%8f%b0%e9%80%9a%e8%a8%8a%e7%9a%84%e6%96%b0%e6%8a%80%e8%a1%93-PnQzkkZSvr\">\u8de8\u5e73\u53f0\u901a\u8a0a\u7684\u65b0\u6280\u8853<\/h2>\n<p>\u96a8\u8457\u96f2\u8a08\u7b97\u548c\u5fae\u670d\u52d9\u67b6\u69cb\u7684\u8208\u8d77\uff0c\u8de8\u5e73\u53f0\u901a\u8a0a\u7684\u9700\u6c42\u65e5\u76ca\u589e\u52a0\u3002\u958b\u767c\u8005\u53ef\u4ee5\u8003\u616e\u4f7f\u7528 RESTful API \u6216 gRPC \u4f86\u5be6\u73fe VB \u61c9\u7528\u7a0b\u5f0f\u8207 SQL Server \u4e4b\u9593\u7684\u901a\u8a0a\u3002<\/p>\n<h3 id=\"restful-api-PnQzkkZSvr\">RESTful API<\/h3>\n<p>RESTful API \u662f\u4e00\u7a2e\u57fa\u65bc HTTP \u5354\u8b70\u7684\u901a\u8a0a\u65b9\u5f0f\uff0c\u80fd\u5920\u8b93\u4e0d\u540c\u5e73\u53f0\u4e4b\u9593\u9032\u884c\u6578\u64da\u4ea4\u63db\u3002\u958b\u767c\u8005\u53ef\u4ee5\u4f7f\u7528 ASP.NET Core \u4f86\u5275\u5efa RESTful API\uff0c\u7136\u5f8c\u5728 VB \u61c9\u7528\u7a0b\u5f0f\u4e2d\u901a\u904e HTTP \u8acb\u6c42\u4f86\u8a2a\u554f\u6578\u64da\u3002<\/p>\n<h3 id=\"grpc-PnQzkkZSvr\">gRPC<\/h3>\n<p>gRPC \u662f\u4e00\u7a2e\u9ad8\u6548\u7684\u958b\u6e90 RPC \u6846\u67b6\uff0c\u652f\u6301\u591a\u7a2e\u7de8\u7a0b\u8a9e\u8a00\u3002\u5b83\u4f7f\u7528 Protocol Buffers \u4f5c\u70ba\u63a5\u53e3\u5b9a\u7fa9\u8a9e\u8a00\uff0c\u80fd\u5920\u5be6\u73fe\u9ad8\u6027\u80fd\u7684\u8de8\u5e73\u53f0\u901a\u8a0a\u3002\u958b\u767c\u8005\u53ef\u4ee5\u5728 VB \u61c9\u7528\u7a0b\u5f0f\u4e2d\u4f7f\u7528 gRPC \u5ba2\u6236\u7aef\u4f86\u8abf\u7528\u670d\u52d9\u7aef\u7684\u6578\u64da\u64cd\u4f5c\u3002<\/p>\n<h2 id=\"%e7%b8%bd%e7%b5%90-PnQzkkZSvr\">\u7e3d\u7d50<\/h2>\n<p>VB \u9023\u63a5 SQL Server \u7684\u65b9\u6cd5\u591a\u7a2e\u591a\u6a23\uff0c\u5f9e\u57fa\u672c\u7684 ADO.NET \u5230\u9ad8\u7d1a\u7684 Entity Framework\uff0c\u518d\u5230\u73fe\u4ee3\u7684 RESTful API \u548c gRPC\uff0c\u958b\u767c\u8005\u53ef\u4ee5\u6839\u64da\u9700\u6c42\u9078\u64c7\u5408\u9069\u7684\u6280\u8853\u3002\u9019\u4e9b\u6280\u8853\u4e0d\u50c5\u63d0\u9ad8\u4e86\u6578\u64da\u64cd\u4f5c\u7684\u6548\u7387\uff0c\u9084\u4fc3\u9032\u4e86\u8de8\u5e73\u53f0\u7684\u901a\u8a0a\u80fd\u529b\u3002\u5c0d\u65bc\u9700\u8981\u7a69\u5b9a\u548c\u9ad8\u6548\u6578\u64da\u5b58\u53d6\u7684\u61c9\u7528\u7a0b\u5f0f\uff0c\u9078\u64c7\u5408\u9069\u7684\u6578\u64da\u8a2a\u554f\u6280\u8853\u81f3\u95dc\u91cd\u8981\u3002<\/p>\n<p>\u5982\u679c\u60a8\u6b63\u5728\u5c0b\u627e\u53ef\u9760\u7684 <a href=\"https:\/\/server.hk\">\u9999\u6e2fVPS<\/a> \u89e3\u6c7a\u65b9\u6848\u4ee5\u652f\u6301\u60a8\u7684\u61c9\u7528\u7a0b\u5f0f\uff0cServer.HK \u63d0\u4f9b\u591a\u7a2e\u9078\u64c7\uff0c\u6eff\u8db3\u4e0d\u540c\u9700\u6c42\u7684\u4f3a\u670d\u5668\u914d\u7f6e\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u63a2\u7d22\u5982\u4f55\u4f7f\u7528 VB \u9023\u63a5 SQL Server\uff0c\u958b\u767c\u65b0\u6280\u8853\u4ee5\u5be6\u73fe\u8de8\u5e73\u53f0\u901a\u8a0a\uff0c\u63d0\u5347\u61c9\u7528\u7a0b\u5f0f\u7684\u9748\u6d3b\u6027\u8207\u6548\u80fd\u3002<\/p>\n","protected":false},"author":0,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[101],"tags":[],"class_list":["post-171629","post","type-post","status-publish","format-standard","hentry","category-database"],"_links":{"self":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/posts\/171629","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/comments?post=171629"}],"version-history":[{"count":1,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/posts\/171629\/revisions"}],"predecessor-version":[{"id":171630,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/posts\/171629\/revisions\/171630"}],"wp:attachment":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/media?parent=171629"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/categories?post=171629"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/tags?post=171629"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}