2014-01-27 17 views
1

我是开发新手,我想将插入行的最后一个密钥ID显示到标签中。我有的代码不会将值返回到标签中。将范围ID的值返回到标签

代码,我有:

using (var conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Users"].ConnectionString)) 
     { 

      var cmd = "INSERT INTO Quote (Customer, Date)VALUES (@Customer, @Date);SELECT CAST(scope_identity() AS int)"; 
      using (var insertCommand = new SqlCommand(cmd, conn)) 
      { 
       int newID; 
       insertCommand.Parameters.AddWithValue("@Customer", TextBox12.Text); 
       insertCommand.Parameters.AddWithValue("@Date", DateTime.Now); 
       conn.Open();      
       newID = (int)insertCommand.ExecuteScalar(); 
       Label1.Text = newID; 

      } 
     } 
+0

你有什么看起来像它应该工作 - 从[MSDN](http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executescalar其直( v = vs.110)的.aspx)。可能尝试在'INSERT INTO'之前添加一个'SET NOCOUNT ON'? – StuartLC

回答

1

您的代码看起来像它应该工作。唯一要改变的是最后一行。将.ToString()添加到最后。

Label1.Text = newID.ToString(); 
+0

即使使用.toString(),这不起作用? – user3012159

+0

你的代码看起来不错;我一直在做类似的事情。我怀疑你的问题不在于这段代码。尝试在别处设置标签文本并查看标签文本是否更改。 –

+1

非常感谢。该标签有错误的ID。 – user3012159