为什么使用SQL Serve Express在SQL Server管理工作室中没有显示添加的记录?

我正在为我的数字音乐文件测试大量记录。

我的添加例程是:

foreach (AlbumModel albumModel in albs) { try { Album album = GetAlbum(albumModel); cmd.CommandText = @"insert into CDS (title,artist,cddbid,genre,tracks,notes) values (@title,@artist,@cddbid,@genre,@tracks,@notes)"; cmd.Parameters["@title"].Value = album.Title; cmd.Parameters["@artist"].Value = album.Artist; cmd.Parameters["@cddbid"].Value = album.Id; cmd.Parameters["@genre"].Value = album.Genre.First().ToString(); cmd.Parameters["@tracks"].Value = album.Tracks.Count(); //cmd.Parameters["@image"].Value = GetCover(album.Title); cmd.Parameters["@notes"].Value = GetNotes(album); cmd.ExecuteNonQuery(); cmd.CommandText = @"Select @@Identity"; var retval = cmd.ExecuteScalar(); } catch (Exception e) { string err = e.Message; } } 

这工作正常,我可以通过简单加载数据表来查看记录。 但是,使用SQL Server Management Studio并连接到我的计算机上的同一个快速数据库,一个简单的select * from CDS根本不会显示任何记录。

我错过了什么吗?

 using (SqlConnection connection = new SqlConnection(conn)) { using (SqlDataAdapter adapter = new SqlDataAdapter("select * from CDS order by title", connection)) { adapter.Fill(dt); } } 

我没有使用交易。

连接字符串是:@“Data Source = MyPC \ SQLEXPRESS; Initial Catalog = Music; Integrated Security = true”

这与SSMS完全相同。

可能是你打开一个sql事务而不是提交它。 后

 var retval = cmd.ExecuteScalar(); 

添加此行

 YourTansaction.Commit(); YourTansaction.Dispose(); YourConnection.Close(); 

经典问题是您在使用事务时插入数据而您不提交事务。 你可以试试

 select * from CDS with (READUNCOMMITTED) order by title 

来自sql管理。 这样,您就可以在打开的事务中看到未提交的行。

(显然,如果这是问题,那么你必须修改你的代码来提交交易!)

在SQL Server的Object explorer中,导航到要从程序插入的表,然后右键单击 – >选择“选择前1000行”。 谢谢