数据库名db 
create table tab1 

id int identity primary key, 
username varchar(10) 

go 
create proc inserttab1 
@id int output, 
@username varchar(10) 
as 
begin 
insert into inserttab1 values(@username) 
set @id=@@identity 
end cs文件 
using System; 
using System.Collections.Generic; 
using System.Text; 
using System.Data.Sql; 
using System.Data.SqlClient; namespace ConsoleApplication1 

class Program 

static void Main(string[] args) 

SqlConnection con = new SqlConnection("server=.;database=db;uid=sa;pwd=as;"); 
con.Open(); 
SqlCommand cmd = new SqlCommand(); 
cmd.CommandText = "inserttab1"; 
cmd.CommandType = System.Data.CommandType.StoredProcedure; 
cmd.Connection = con; cmd.Parameters.Add("@username", System.Data.SqlDbType.VarChar); 
cmd.Parameters.Add("@id", System.Data.SqlDbType.Int); 
cmd.Parameters["@username"].Value = "tim"; 
cmd.Parameters["@id"].Direction = System.Data.ParameterDirection.Output; 
cmd.ExecuteNonQuery(); int id = int.Parse(cmd.Parameters["@id"].Value.ToString()); //这句话报错,哪里错了?
con.Close(); 
Console.WriteLine(id.ToString());