【问题标题】:Adding data to a database but it does not reflect on the database向数据库中添加数据,但不反映在数据库中
【发布时间】:2023-01-04 02:07:34
【问题描述】:

我是 C# 和 ADO.net 的新手。我正在使用本地数据库,并且有一种方法可以将数据添加到数据库中,但是一旦调用了该方法,数据就不会反映出来。虽然,当我添加数据时,我可以从我的检索数据方法访问它。虽然当程序关闭时数据会丢失。你能帮帮我吗。这与我的连接字符串有关吗?这是我的插入方法:

string query = "INSERT INTO Customers (Username, FirstName, LastName, PhoneNumber, CreditStatus, HomeAddress, Password, Blacklisted, Email) " +
               "VALUES (@Username, @FirstName, @LastName, @PhoneNumber, @CreditStatus, @HomeAddress, @Password,@Blacklisted,@Email) ";

private string strConn = Settings.Default.OrderingDBConnectionString;

// The val of strConn:
// Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\DatabaseLayer\OrderingDB.mdf;Integrated Security=True

public void insert(Customer customer) 
{
    Console.WriteLine(strConn);

    SqlConnection cn = new SqlConnection(strConn);
    SqlCommand cmd = new SqlCommand(query, cn);
            
    cn.Open();
    
    cmd.Parameters.AddWithValue("@Username", customer.getUsername());
    cmd.Parameters.AddWithValue("@FirstName", customer.getFirstName());
    cmd.Parameters.AddWithValue("@LastName", customer.getLastName());
    cmd.Parameters.AddWithValue("@PhoneNumber", customer.getPhoneNumber());
    cmd.Parameters.AddWithValue("@CreditStatus", customer.getCreditStatus());
    cmd.Parameters.AddWithValue("@HomeAddress", customer.getAddress());
    cmd.Parameters.AddWithValue("@Password", customer.getPassword());
    cmd.Parameters.AddWithValue("@Blacklisted", customer.getBlacklisted());
    cmd.Parameters.AddWithValue("@Email", customer.getEmail());

    cmd.ExecuteNonQuery();
    cn.Close();
}

【问题讨论】:

  • 您应该查看 Can we stop using AddWithValue() already? 并停止使用 .AddWithValue() - 它可能会导致意外和令人惊讶的结果......
  • 如果你使用int rowsInserted = cmd.ExecuteNonQuery() - 你会得到什么值?是否插入了任何行?

标签: c# .net sql-server database .net-core


【解决方案1】:

使用 try catch 查看连接是否正确打开并查看其他错误:

        {
            try  
            {
                cmd.Parameters.AddWithValue("@Username", customer.getUsername());
                cmd.Parameters.AddWithValue("@FirstName", customer.getFirstName());
                cmd.Parameters.AddWithValue("@LastName", customer.getLastName());
                cmd.Parameters.AddWithValue("@PhoneNumber", customer.getPhoneNumber());
                cmd.Parameters.AddWithValue("@CreditStatus", customer.getCreditStatus());
                cmd.Parameters.AddWithValue("@HomeAddress", customer.getAddress());
                cmd.Parameters.AddWithValue("@Password", customer.getPassword());
                cmd.Parameters.AddWithValue("@Blacklisted", customer.getBlacklisted());
                cmd.Parameters.AddWithValue("@Email", customer.getEmail());

                cn.Open();
                cmd.ExecuteNonQuery();
                cn.Close();
            }  
            catch (Exception e)  
            {  
                  Console.WriteLine(e.Message); 
            } 
        }

可能问题是 connectionString

【讨论】:

    猜你喜欢
    • 2013-04-22
    • 1970-01-01
    • 2015-05-09
    • 1970-01-01
    • 2010-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-20
    相关资源
    最近更新 更多