Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#插入数据库,无错误,数据不插入数据库_C#_Sql_Winforms - Fatal编程技术网

C#插入数据库,无错误,数据不插入数据库

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

我正在尝试将一些数据插入本地SQL数据库。该命令似乎运行成功,我没有收到任何错误,但由于某些原因,数据没有插入到数据库中。我忘了什么吗

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