问题描述
我已经在Visual Studio 2019预览版(.NET Core 3.1,Windows Form Application)中创建了一个sql数据库(DatabaseTest.mdf)。 这是我第一次尝试这样做。我在计算机上本地运行数据库。
数据库由4列组成:
- 名字
- 姓氏
- 电话号码
- 工资
现在,我正在尝试使用C#以编程方式将包含信息的行添加到该数据库中。
代码如下:
using System.Data.sqlClient;
private void button1_Click(object sender,EventArgs e)
{
string connectionString = GetConnectionString();
sqlConnection con = new sqlConnection(connectionString);
sqlCommand cmd = new sqlCommand("sp_insert",con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@First Name","Peter");
cmd.Parameters.AddWithValue("@Last Name","Smith");
cmd.Parameters.AddWithValue("@PhoneNumber","5548945667");
cmd.Parameters.AddWithValue("@Salary",50000);
con.open();
int i = cmd.ExecuteNonQuery();
con.Close();
if (i != 0)
{
MessageBox.Show(i + "Data Saved");
}
}
static private string GetConnectionString()
{
return "Data Source=(LocalDB)/MSsqlLocalDB;AttachDbFilename=C:/Users/andre/source/repos/TestDatabaseCreation/DatabaseTest.mdf;Integrated Security=True";
}
但是,当我现在通过单击按钮运行此代码时。我收到此错误:
System.Data.sqlClient.sqlException:'与sql Server建立连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称正确,并且已将sql Server配置为允许远程连接。 (提供者:命名管道提供者,错误:40-无法打开与sql Server的连接)'
Win32Exception:找不到网络路径。
我完全从DatabaseTest.mdf属性复制了此连接字符串。因此,下面的DatabaseTest.mdf的路径是正确的等
“数据源=(LocalDB)/MSsqlLocalDB;AttachDbFilename=C:/Users/andre/source/repos/TestDatabaseCreation/DatabaseTest.mdf;集成安全性= True”
我想知道我收到此错误消息是什么问题吗?
(我也从Visual Studio 2019 Preview .NET Core 3.1中在下面的链接上添加了屏幕截图)
Image of the error in C# code behind in Visual Studio 2019 Preview
解决方法
首先,您可以按照以下步骤确保SQL Server Express已安装并正常工作
- 打开 Visual Studio安装程序 >> 修改
展开 .Net桌面开发
向下滚动并检查是否已安装SQL Server Express
[
如果已安装,请转到步骤2
- 打开服务器资源管理器
连接到数据库
选择数据源>> Microsoft SQL Server数据库文件
添加连接>>浏览到数据库文件,并确保测试连接,然后单击确定
然后,在Server Explorer中将显示连接,右键单击>>属性
然后您可以获得连接字符串
第二,连接字符串位于上方,您可以通过以下方式检查其是否工作
SqlConnection cnn = new SqlConnection(**connectionString**);
cnn.Open();
// not do anything yet
cnn.Close();
然后运行以确保您可以打开与数据库的连接
更新:
检查所需的存储过程是否存在?