无法插入SQL Server数据库

时间:2016-12-09 09:59:01

标签: c# sql sql-server ado.net

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=|DataDirector‌​y|\Speler.mdf;Integr‌​ated Security=True

2 个答案:

答案 0 :(得分:2)

代码没有问题。我怀疑您的连接字符串使用用户实例数据库,即它具有AttachDBFilenameUser 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()方法可以返回插入的行数。