执行存储过程,获取out返回值问题
protected void Page_Load(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection("server=127.0.0.1;database=pubs;uid=sa;password=''");
SqlCommand cmd = new SqlCommand("GetLastname", con);
string strLastname;
cmd.CommandType = CommandType.StoredProcedure;
//firstname input parameter
cmd.Parameters.AddWithValue("@firstname", "Ann");
//lastname output parameter
SqlParameter paraLastname = cmd.Parameters.AddWithValue("@lastname", SqlDbType.VarChar);
paraLastname.Size = 40;
paraLastname.Direction = ParameterDirection.Output;
//Execute Command
con.Open();
cmd.ExecuteScalar();
//Retrieve value of output parameter
if (cmd.Parameters["lastname"].Value != null)
{
strLastname = cmd.Parameters["lastname"].Value.ToString();
}
else
{
strLastname = "Unknown";
}
con.Close();
Response.Write("The last name is" + strLastname);
}
//------------------------------存储过程
Create Procedure GetLastname
(
@firstname Varchar(20),
@lastname Varchar(20) Output
)
As
Select @lastname=au_lname
From Authors
Where au_fname=@firstname
//---------------------------------------
执行后提示将数据类型 varchar 转换为 int 时出错.谁能告诉我是什么原因,存储过程在查询分析器里调试可以正常显示,我用的是vs2005