C#插入数据库,无错误,数据不插入数据库
我正在尝试将一些数据插入本地SQL数据库。该命令似乎运行成功,我没有收到任何错误,但由于某些原因,数据没有插入到数据库中。我忘了什么吗C#插入数据库,无错误,数据不插入数据库,c#,sql,winforms,C#,Sql,Winforms,我正在尝试将一些数据插入本地SQL数据库。该命令似乎运行成功,我没有收到任何错误,但由于某些原因,数据没有插入到数据库中。我忘了什么吗 public void RegisterUser(string fName, string lName, string email, string password) { string conStr = ConfigurationManager.ConnectionStrings["DatabaseConnectionString"].C
public void RegisterUser(string fName, string lName, string email, string password)
{
string conStr = ConfigurationManager.ConnectionStrings["DatabaseConnectionString"].ConnectionString;
using (SqlConnection openCon = new SqlConnection(conStr))
{
string saveUser = "INSERT into Users (firstName,lastName,email,password,isAdmin) VALUES (@firstName,@lastName,@email,@password,@isAdmin)";
using (SqlCommand querySaveUser = new SqlCommand(saveUser))
{
querySaveUser.Connection = openCon;
querySaveUser.Parameters.AddWithValue("@firstName", fName);
querySaveUser.Parameters.AddWithValue("@lastName", lName);
querySaveUser.Parameters.AddWithValue("@email", email);
querySaveUser.Parameters.AddWithValue("@password", password);
querySaveUser.Parameters.AddWithValue("@isAdmin", 1);
openCon.Open();
querySaveUser.ExecuteNonQuery();
}
}
}
连接字符串:
<connectionStrings>
<add name="DatabaseConnectionString" connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\App_Data\Database.mdf;Integrated Security=True;"
providerName="System.Data.SqlClient" />
更新:
解决了!出于某种原因,我试图输出到另一个目录。最终重新创建解决问题的数据库。Do
int affected = querySaveUser.ExecuteNonQuery();
并设置调试点并观察受影响的值
根据MSDN,“如果发生回滚,则返回值也为-1。”如果您正在调试数据库,则会在bin/Debug文件夹中创建数据库副本,因此您可能会检查不同的数据库。检查此-我检查了您的代码及其在我的系统中的工作情况,但我已更改了您的连接字符串,因此请将您的连接字符串修改为我的,然后检查我希望您的问题得到解决
public void RegisterUser(string fName, string lName, string email, string password)
{
string conStr = ConfigurationManager.ConnectionStrings["DatabaseConnectionString"].ConnectionString;
using (SqlConnection openCon = new SqlConnection(conStr))
{
string saveUser = "INSERT into Users (firstName,lastName,email,password,isAdmin) VALUES (@firstName,@lastName,@email,@password,@isAdmin)";
using (SqlCommand querySaveUser = new SqlCommand(saveUser))
{
querySaveUser.Connection = openCon;
querySaveUser.Parameters.AddWithValue("@firstName", fName);
querySaveUser.Parameters.AddWithValue("@lastName", lName);
querySaveUser.Parameters.AddWithValue("@email", email);
querySaveUser.Parameters.AddWithValue("@password", password);
querySaveUser.Parameters.AddWithValue("@isAdmin", 1);
openCon.Open();
querySaveUser.ExecuteNonQuery();
}
}
}
连接字符串:web.config
<connectionStrings>
<add name="DatabaseConnectionString" connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Database.mdf; Initial Catalog=Database.mdf; Integrated Security=True;" providerName="System.Data.SqlClient" />
</connectionStrings>
它可能会帮助寻找实体框架核心
或ASP.NET Zero
相关解决方案的人
在我的例子中,我使用的是ASP.NET Zero
锅炉板模板,用于ASP.NET核心
,它没有插入到数据库中。经过几分钟的探索,我发现ASP.NET Zero
不会立即对db
执行ef
查询,而是在工作单元的末尾插入行
通常,如果出现异常,它将无法插入,并将该异常记录到Logs
表中,如果出现异常,您可以查看最新的日志
如果要立即执行查询,可以通过调用SaveChanges()
方法强制它保存更改,如下所示:
await CurrentUnitOfWork.SaveChangesAsync();
受影响的用户返回0