【发布时间】:2018-11-06 22:28:50
【问题描述】:
TL;DR 所以你不要再把它搁置了: Visual Studio 不允许我在项目内的 SQL 服务器上创建与数据库的实时连接,即使它可以与项目外的服务器通信。我希望它具有实时连接,这样我就可以创建一个使用并允许访问数据库的网站。
我有 Visual Studio 2017 Professional 和 Microsoft SQL Server Management Studio 2017。
我已成功将服务器上的数据库连接到 Visual Studio,这样我就可以在 Visual Studio 中编辑数据库,服务器将反映我的更改。但是,我无法在任何项目中与服务器建立实时连接。当我将数据库导入项目时,它只是创建了一个实际上不与服务器通信的副本。
我想我需要在 Visual Studio 中创建某种特殊对象或更改一些设置。
我是否需要切换到 Enterprise 才能获得支持的功能?专业版应该足够了这似乎是合理的,但是如果有人知道如何使用不同版本的 Visual Studio 解决此类问题,或者如何通过另一个 [希望负担得起的] 程序创建连接到数据库服务器的网站,我全是耳朵。谢谢!
(为了清楚起见,本段稍后添加:)我的目标是使用 Visual Studio 创建一个网站,允许授权用户编辑数据库。除非这样做是一个糟糕的想法,否则我想首先使用在 Visual Studio 中制作的网站编辑服务器上的数据库,然后添加安全功能。在系统设置好之前,服务器上的当前数据库是占位垃圾。听起来可能可以使用网站访问数据库,而无需直接将其放入 Visual Studio 项目中,因此我正在研究第二条评论中提供的说明。
根据@Symon 的评论和链接,我管理的错误最少的解决方案如下。我已经为第一行尝试了几件事,并且公开无效似乎将大约 1/30 的错误视为我尝试过的其他任何事情,这绝对不意味着它实际上是正确的答案。出于安全原因,方括号中的项目被删除。我完全按照在弹出窗口中所做的那样输入了数据库的凭据,以将 Visual Studio 连接到服务器上的数据库。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
public void heresanamespacethingy (string stp)
{
//GET STORED PROCEDURE HERE
string conStr = @"Data Source=[server name]; Initial Catalog=[database name]; User ID=[my user ID]; Password=[my password]";
using (SqlConnection conn = new SqlConnection(conStr))
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = stp;
conn.Open();
cmd.CommandType = CommandType.StoredProcedure;
cmd.ExecuteNonQuery();
conn.Close();
conn.Dispose();
}
}
错误是 CS0116 命名空间不能直接包含字段或方法等成员。
【问题讨论】:
-
将网站“连接到数据库”与使用 Visual Studio 探索数据库无关。老实说,除了编写和编译代码之外,我从不喜欢让 Visual Studio 承担如此多的责任。我建议您使用 SQL Server Management Studio(Microsoft 的免费软件)来管理您的数据库并在您的 C# 代码中使用标准 SQL 客户端组件
-
连同对原始帖子的代码和其他修改,我建议您尝试进一步澄清您的实际问题以及您遇到的错误。如果我们唯一知道的是“有错误”而不是它实际上是什么错误,那么帮助解决错误有点困难。 :)
-
哦,是的。我忘了粘贴错误。我现在添加它!
-
@Laura,谢谢!请查看我的更新答案。
标签: c# sql-server database visual-studio visual-studio-project