使用C#将数据插入.NET Core 3.1中的SQL数据库收到错误
我已经在VisualStudio2019预览版(.NETCore3.1,Windows窗体应用程序)中创建了一个SQL数据库(DatabaseTest.mdf)。 这是我第一次尝试这样做。我在计算机上本地运行数据库 数据库由4列组成:使用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
- 名字
- 姓氏
- 电话号码
- 工资
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已安装并正常工作
SqlConnection cnn = new SqlConnection(**connectionString**);
cnn.Open();
// not do anything yet
cnn.Close();
然后运行以确保可以打开到数据库的连接
更新:
检查您想要的存储过程是否存在
您安装了SQL Express吗?斜杠可以作为路径的替代选项,但数据源(服务器)必须使用反斜杠:
(LocalDB)\MSSQLLocalDB
exampleServer=。\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
是否是受支持的命令。我不确定如何检查该命令或如何返回受支持的命令?不,您必须自己创建该命令,创建表,创建存储过程。。。