如何在Visual Studio中让应用程序访问数据库
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Visual Studio中让应用程序访问数据库相关的知识,希望对你有一定的参考价值。
在Visual Studio中让应用程序访问数据库的操作方法和步骤如下:
1、首先,打开vs2010并依次单击工具栏的“文件”-->“新建”,新建相应的应用程序,如下图所示。
2、其次,完成上述步骤后,与数据库建立连接,通过“视图”菜单找到“服务器资源管理器”选项,然后单击打开,如下图所示。
3、接着,完成上述步骤后,在服务器资源管理器中右键单击“数据连接”,然后选择“添加连接”选项,如下图所示。
4、然后,完成上述步骤后,选择或输入“服务器名”,选择登录方式,选择或输入数据库名称,如下图所示。
5、最后,完成上述步骤后,通过“视图”菜单打开“属性”选项卡,然后将连接字符串中的那一句直接复制到web.config中,如下图所示。这样,问题就解决了。
参考技术A 随着Web应用程序功能的增强,现在Web应用程序基本上都需要后台数据库的支持。如下图所示,现在某个Web应用程序提供了一个BBS的论坛。用户可以在Web应用程序上注册用户、发帖等等。为了提高Web应用程序的查询效率、缩短响应时间,此时开发人员就需要为Web应用程序配备一个合适的数据库。在这篇文章中,笔者将跟各位读者讨论一下,在VisualStudio平台下,如何让Web应用程序与数据库打交道。寻找一个价廉物美的解决方案。一、笔者推荐使用Sql Server Express Edition数据库。
在VisualStudio中开发Web应用程序,可以使用ASP.NET语言,也可以使用其他语言。不过无论采用哪种语言,根据目前的技术,其已经可以支持市面上的大部分数据库。这主要是通过ODBC或者类似的数据库驱动程序来完成的。不过如果记录的数量不是很大,那么笔者推荐使用 Sql Server Express Edition数据库。
因为ASP.net与Sql Server Express Edition数据库都是微软旗下的产品。微软在设计的时候,就让他们成为了一对很好的搭档。简单的说,Sql Server Express Edition数据库为生成Web应用程序提供了一个简单、便捷、成本低廉的数据库解决方案。可以这么说,Sql Server Express Edition数据库是专为Visual Stuido平台下的Web应用程序量身定制的。
在这篇文章中,笔者将详细介绍在Visual Stuido平台下,如何跟Sql Server Express Edition数据库打交道以及需要注意的内容。为了便于读者的理解,笔者以ASP语言为例进行讲解。主要的内容包括如何连接Sql Server Express Edition数据库、建立用户实例、进行相关的配置、数据读取与修改等方面的话题。
二、使用ASP.net语言连接到Sql Server Express Edition数据库。
当Web应用程序需要访问数据库中的数据,如进行身份验证的过程中,Web应用程序需要先连接到数据库,查询相关的数据。所以这第一个步骤就是怎么让Web应用程序连接到Sql Server Express Edition数据库。
如果使用其它类型的数据库,如Oracle,往往需要使用第三方的数据库驱动程序,如ODBC等等。但是使用 Sql Server Express Edition数据库的话,则不需要这么麻烦。因为在开发环境中,已经有了现成的接口。开发人员之需要为应用程序指定数据源,便可以让应用程序连接到对应的Sql Server Express Edition数据库中。具体的说,是通过如下语句来实现的。
Data Source=.\SqlExpress;initial catalo=***;intergrated security=true;
在创建与管理数据库连接的时候,笔者认为下面这些内容应该引起各位读者的注意。
一是在VisualStudio“解决方案资源管理器”中如何管理数据库的连接。毕竟在Web应用程序开发中,与数据库进行交互只是其一部分工作。如Web应用程序界面的美化等等就不需要用到数据库。如果在开发过程中,经常让应用程序连接到数据库中,会影响应用程序开发的效率。为此如果需要关闭数据库连接的话,开发人员可以在解决方案资源管理器中来进行设置。在“解决方案资源管理器”中右键单击数据库,并选择“分离”选项,就可以关闭与数据库的连接。如果在“服务器资源管理器”中操作的话,则可以右键单击数据库并洗选择“关闭连接”(两者虽然名字不一样,但是起到的效果是相同的),也可以同样中断与数据库的连接。
二是需要注意Visual Stuido平台中有时候也会自动关闭数据库的连接。如在调试或者重新运行Web应用程序的时候,系统将自动关闭任何打开的数据库连接。为此在进行调试操作之前,要确保准备写入到数据库中的数据已经提交,或者没有其他用户正在跟数据库交互。在团队开发中,特别需要注意这一点。
与数据库创建连接并进行维护,这一步工作是基础。如果这个步骤没有做好的话,则后续的很多任务执行起来都会遇到阻碍。
三、通过Visual来更改Sql Server Express Edition数据库。
通常情况下,数据库的开发与应用程序的开发是由不同的开发人员来完成的。也就是说,项目团队先分别设计好开发模型与数据库模型,然后两边的人员分别进行相关的工作:应用程序开发与数据库开发。不过俗话说,变化没有计划快。有时候开发人员可能需要对数据库总的内容进行稍微的调整,如在数据库表中增加一个字段或者修改字段的名称等等(主要是临时需要用到的字段,如基于测试的需要等等)。此时如果通过数据库来进行更改,那么就会耽搁时间。
为了便于开发人员的使用,系统提供了一些工具,允许用户在VisualStudio平台上直接对数据库进行一些更改操作,如管理数据库的表对象、存储过程等等。这些功能主要是在“服务器资源管理器”窗口中实现的。可以这么说,在这里可以完成数据库平台上的大部分操作。在这里对于具体的功能笔者不做过多展开。笔者需要说明的是,使用这项功能是需要注意的事项。
第一,在团队开发中这个功能需要小心。在一些比较复杂的应用程序中,往往应用程序开发与数据库设计是分开进行的。此时开发人员在更改数据库内容的时候,特别是更改数据库结构的时候,需要特别的注意。因为你这个更改的话,可能会对数据库的整体设计产生比较大的影响。一般情况下,笔者建议只是对测试过程中需要使用的一些临时字段,才允许通过这个平台直接进行更改。而且必须在第一时间内告知数据库管理员。
第二,需要注意数据库管理员在数据库开发过程中,会频繁的对数据库进行恢复等操作,对其更改造成的不利影响。笔者在项目管理中,发现一些数据库开发人员在数据库设计中,由于种种原因经常会对数据库进行还原的操作。此时如果开发人员对数据库的更改发生在备份操作之后,则还原之后其更改的内容将会丢失。这也就提醒开发人员,在对数据库进行某些更改之后,需要及时与数据库管理员沟通。以免数据的丢失。
四、避免使用用户实例。
虽然在Sql Server Express Edition数据库中支持用户实例的功能。但是笔者在这里并不建议使用。因为用户实例通常使用在桌面应用程序中。而如果在Web应用程序中使用的话,会造成一些难以预料的后果。这主要是因为在这种情况下,用户实例与应用程序的进程标识可能会有冲突。
如上图所示,在一个Web服务器上,可能有多个客户站点(如在一个Web站点上同时挂载了BBS论坛、邮箱等服务)。在这种情况下,应用程序必须分开并受到单独的保护。在Windows操作系统上,所有的ASP应用程序使用的都是相同的进程标识。而使用相同的进程表示运行的ASP应用程序又连接的是同一个用户实例。此时用户实例与应用程序进程就会有冲突。为此如果Web服务器上具有互不信任的应用程序的托管服务器,此时就应该明确禁用用户实例。
这里需要注意,默认情况下Sql Server Express Edition数据库是支持用户实例的。为此在Web应用程序开发之前,需要先将这个功能禁用掉。至少在这个冲突没有被解决之前,我们只能够暂时牺牲一下用户实例。在实际工作中,我们可以通过如下命令来关闭用户实例:
Sp_configuer ‘user instances enabled’,0.
以上命令中,最后的参数0表示禁用用户实例。当在一个Web应用服务器上同时实现多个互不信任的Web应用程序时,一定要讲这个用户实例的功能关闭掉。如上图所示,在一个Web站点上可能同时有OA系统、邮箱系统等等。开发人员希望用户采用不同的用户名进入对应的系统,此时就需要将用户实例关闭掉。本回答被提问者和网友采纳
如何在 Visual Studio 代码中访问 git 的 api
【中文标题】如何在 Visual Studio 代码中访问 git 的 api【英文标题】:How to access the api for git in visual studio code 【发布时间】:2018-03-12 16:52:22 【问题描述】:我想在我的一个扩展中使用 vscode git api 来执行 git clone 和其他任务。它可以从 vscode api 访问吗? 代码在这里..api
【问题讨论】:
我也有同样的疑惑……在docs 中,关于 git api 只有两个 (2!) 项。当我查看我经常使用的两个 Git 扩展(gitHistoryVSCode、vscode-gitlens)的代码时,我注意到作者从头开始编写基本的 git 功能(如checkout
、branch
等)而不是使用 VSCode 中一些已经内置的 git 功能。
这里也一样,显然没有这方面的消息。回购中的这个开放问题似乎试图使扩展的 API 可用:github.com/Microsoft/vscode/issues/31103
【参考方案1】:
推特来救援! 我在那里问过,并指出了这里的 API 定义:https://github.com/Microsoft/vscode/blob/master/extensions/git/src/api/git.d.ts
...这里有一个例子:https://github.com/Microsoft/vscode-pull-request-github/blob/master/src/extension.ts#L53
// Import the git.d.ts file
import API as GitAPI, GitExtension, APIState from './typings/git';
const gitExtension = vscode.extensions.getExtension<GitExtension>('vscode.git').exports;
const api = gitExtension.getAPI(1);
const rootPath = vscode.workspace.rootPath;
const repository = api.repositories.filter(r => isDescendant(r.rootUri.fsPath, rootPath))[0];
【讨论】:
导入GitExtension
的导入行是什么?
你能澄清一下这段代码吗?这很令人困惑,但是,我尝试了但无济于事......【参考方案2】:
在 vscode 扩展中使用 git api 的示例代码:
const gitExtension = vscode.extensions.getExtension('vscode.git').exports;
const api = gitExtension.getAPI(1);
const repo = api.repositories[0];
const head = repo.state.HEAD;
// Get the branch and commit
const commit,name: branch = head;
// Get head of any other branch
const mainBranch = 'master'
const branchDetails = await repo.getBranch(mainBranch);
// Get last merge commit
const lastMergeCommit = await repo.getMergeBase(branch, mainBranch);
const status = await repo.status();
console.log( branch, commit, lastMergeCommit, needsSync: lastMergeCommit !== commit );
您还必须更新 package.json 中的 extensionDependencies:
"extensionDependencies": [
"vscode.git"
]
【讨论】:
仅供参考,我决定使用 simple-git npm 模块而不是依赖 git 扩展。【参考方案3】:根据the extension
API,访问其他扩展提供的API:
当依赖于另一个扩展的 API 添加一个
extensionDependencies
-进入package.json
,并使用 getExtension-function 和 exports-property,如下所示:let mathExt = extensions.getExtension('genius.math'); let importedApi = mathExt.exports; console.log(importedApi.mul(42, 1));
【讨论】:
以上是关于如何在Visual Studio中让应用程序访问数据库的主要内容,如果未能解决你的问题,请参考以下文章
使用 Visual Studio,如何防止网络共享上的发布项目被用户锁定?
如何添加自定义 DB 提供程序以在 Visual Studio 中访问?
找不到可安装的 ISAM Visual Studio 2012
在 Visual Studio Code 上调试 Flutter 应用程序时如何停止 MacOS 上的“钥匙串访问”权限对话框?