【发布时间】: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