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 命名空间不能直接包含字段或方法等成员。