using (Connection = new SqlConnection(connectionstring))
{
SqlCommand voegtoe = new SqlCommand("INSERT INTO Speler(Naam, Rugnummer, Leeftijd) VALUES(@Naam, @Rugnummer, @Leeftijd)");
voegtoe.CommandType = CommandType.Text;
voegtoe.Connection = Connection;
voegtoe.Parameters.AddWithValue("@Naam", textBox1.Text);
voegtoe.Parameters.AddWithValue("@Rugnummer", textBox2.Text);
voegtoe.Parameters.AddWithValue("@Leeftijd", textBox3.Text);
Connection.Open();
voegtoe.ExecuteNonQuery();
}
如果我打开我的数据库,则没有添加任何内容。我认为它应该添加用户放在文本框中的文本。
连接字符串是:
Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Speler.mdf;Integrated Security=True
答案 0 :(得分:2)
代码没有问题。我怀疑您的连接字符串使用用户实例数据库,即它具有AttachDBFilename
和User Instance=true
关键字:
Data Source=.\SQLEXPRESS; AttachDBFilename=|DataDirectory|\db.mdf; User Instance=true;...
这意味着每个尝试附加到数据库文件的用户都会获得自己的副本。当您尝试使用SSMS检查数据时,您会看到不同的数据库副本。
除了引起混淆之外,此功能已弃用,将来也会被删除。
只需在数据库服务器中创建一个合适的数据库,并通过指定其名称来连接它:
Data Source=.\SQLEXPRESS; Initial Catalog=MyDB;...
您可以从SSMS中的New Database
菜单创建数据库,也可以使用CREATE DATABASE MyDB
命令创建数据库
您可以在Aaron Bertrand的Bad habits : Using AttachDBFileName中找到更多信息
答案 1 :(得分:0)
当您的查询无法运行时会发生什么?如果您遇到异常,则必须重试插入。
ExecuteNonQuery()
方法可以返回插入的行数。