使用C#将数据插入.NET Core 3.1中的SQL数据库收到错误

使用C#将数据插入.NET Core 3.1中的SQL数据库收到错误,c#,sql-server,sqlconnection,.net-core-3.1,C#,Sql Server,Sqlconnection,.net Core 3.1,我已经在VisualStudio2019预览版(.NETCore3.1,Windows窗体应用程序)中创建了一个SQL数据库(DatabaseTest.mdf)。 这是我第一次尝试这样做。我在计算机上本地运行数据库 数据库由4列组成: 名字 姓氏 电话号码 工资 现在,我正在尝试使用C#以编程方式向该数据库添加一行信息 代码如下: using System.Data.SqlClient; private void button1_Click(object sender, E

我已经在VisualStudio2019预览版(.NETCore3.1,Windows窗体应用程序)中创建了一个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的连接)'

Win32异常:未找到网络路径

我已从DatabaseTest.mdf属性中准确复制了此连接字符串。因此下面DatabaseTest.mdf的路径是正确的etc
“数据源=(LocalDB)/MSSQLLocalDB;AttachDbFilename=C:/Users/andre/Source/repos/TestDatabaseCreation/DatabaseTest.mdf;集成安全性=True”

我想知道我收到这个错误消息的问题是什么

(我在下面的链接上附上一个截图,该链接也来自Visual Studio 2019预览版.NET Core 3.1)

首先,您可以通过以下步骤确保SQL Server Express已安装并正常工作

  • 打开Visual Studio安装程序>修改
  • 展开.Net桌面开发

    向下滚动并检查是否安装了SQL Server Express

    [

    如果已安装,请转至步骤2

  • 打开服务器资源管理器
  • 连接到数据库

    选择数据源>>Microsoft SQL Server数据库文件

    添加连接>>浏览数据库文件,确保测试连接,然后确定

    之后,服务器资源管理器内部将显示连接,右键单击该>>属性

    然后您可以获得连接字符串

    第二,使用上面的连接字符串,您可以通过

    SqlConnection cnn = new SqlConnection(**connectionString**);
    
    cnn.Open();
    
    // not do anything yet
    
    cnn.Close();
    
    然后运行以确保可以打开到数据库的连接

    更新:

    检查您想要的存储过程是否存在


    您安装了SQL Express吗?斜杠可以作为路径的替代选项,但数据源(服务器)必须使用反斜杠:
    (LocalDB)\MSSQLLocalDB
    example
    Server=。\SQLExpress;AttachDbFilename=C:\MyFolder\MyDataFile.mdf;Database=dbname;Trusted\u Connection=Yes;
    Extended reading:关于过程名称:
    sp\ucode>是微软保留的,不应该使用。太好了。你说的我都做了。我成功了“测试连接”。然后我收到这个连接字符串:
    datasource=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=C:\\Users\\andre\\source\\repos\\TestDatabaseCreation\\DatabaseTest.mdf;integratedsecurity=True;Connect Timeout=30
    。然后I
    。成功地打开
    和关闭
    ,没有任何错误。但是当我使用此代码运行时:
    int I=cmd.ExecuteNonQuery()
    ,我得到了这个错误:
    System.Data.SqlClient.SqlException:“找不到存储过程'proc_insert'。
    这取决于什么?
    sp_insert
    给出了这个错误:
    System.Data.SqlClient.SqlException:“找不到存储过程'sp_insert'。
    回答更新后,检查您想要的存储过程是否正确isted与否。我不确定我是否理解。我是否应该检查
    proc\u insert
    是否是受支持的命令。我不确定如何检查该命令或如何返回受支持的命令?不,您必须自己创建该命令,创建表,创建存储过程。。。