存储过程的输入输出问题

flyrunner 2003-09-19 08:12:39
我里面有:cmd.ExecuteNonQuery();
报错:
CS0117: 'System.Data.SqlClient.SqlDataAdapter' does not contain a definition for 'ExecuteNonQuery'
请问是什么原因。
...全文
44 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lingyun_k 2003-09-19
  • 打赏
  • 举报
回复
public string BuildReturnWareForm(ArrayList reform)
{
//生成退厂单

string str = "";

SqlConnection myCn=new SqlConnection(strConn);
SqlCommand myCm=new SqlCommand("p_BuildReturnWareForm",myCn);
myCm.CommandType =CommandType.StoredProcedure;

myCm.Parameters.Add(new SqlParameter("@ProvdID",SqlDbType.Int,4));
myCm.Parameters["@ProvdID"].Value = reform[0];

myCm.Parameters.Add(new SqlParameter("@date",SqlDbType.DateTime));
myCm.Parameters["@date"].Value = reform[1];

myCm.Parameters.Add(new SqlParameter("@ModeID",SqlDbType.Int));
myCm.Parameters["@ModeID"].Value = reform[2];

myCm.Parameters.Add(new SqlParameter("@MakeFormMan",SqlDbType.VarChar,50));
myCm.Parameters["@MakeFormMan"].Value = reform[3];

SqlParameter param = myCm.Parameters.Add("@ID",SqlDbType.Int);
param.Direction = ParameterDirection.Output;

try
{
myCn.Open() ;
myCm.ExecuteNonQuery() ;
str = myCm.Parameters["@ID"].Value.ToString();
return str; //返回退厂单编号
}

catch(SqlException er)
{
throw new Exception(er.Message);
}

finally
{
myCm.Dispose() ;
myCn.Close() ;
}
}
chnking 2003-09-19
  • 打赏
  • 举报
回复
CS0117: 'System.Data.SqlClient.SqlDataAdapter' does not contain a definition for 'ExecuteNonQuery'

说明你的这个cmd是个SqlDataAdapter对象,ExecuteNonQuery方法时SqlCommand的方法
lingyun_k 2003-09-19
  • 打赏
  • 举报
回复
我是这样获取输出参数的
SqlParameter param = myCm.Parameters.Add("@ID",SqlDbType.Int);
param.Direction = ParameterDirection.Output;
string str = myCm.Parameters["@ID"].Value.ToString();
LineCorner 2003-09-19
  • 打赏
  • 举报
回复
pa.Direction = ParameterDirection.Output;去掉试试
LineCorner 2003-09-19
  • 打赏
  • 举报
回复
ExecuteNonQuery方法是sqlcommand的而不是sqldataadapter的
flyrunner 2003-09-19
  • 打赏
  • 举报
回复
在线求救,得不到输出参数:

SqlCommand cmd =new SqlCommand("getdays",myConnection);
cmd.CommandType=CommandType.StoredProcedure;

cmd.Connection.Open();
cmd.Parameters.Add (new SqlParameter ("@startdate",SqlDbType.DateTime));
cmd.Parameters["@startdate"].Value=tb_overtimebegin.Value;

cmd.Parameters.Add (new SqlParameter ("@enddate",SqlDbType.DateTime));
cmd.Parameters["@enddate"].Value=tb_overtimeend.Value;

SqlParameter pa=cmd.Parameters.Add ("@hours",SqlDbType.Decimal);
pa.Direction =ParameterDirection.ReturnValue ;
pa = cmd.Parameters.Add("@hours", SqlDbType.Decimal);
pa.Direction = ParameterDirection.Output;
cmd.ExecuteNonQuery();
String days =cmd.Parameters["@hours"].Value.ToString();
yuanylong 2003-09-19
  • 打赏
  • 举报
回复
一般都是cmd没有定义好。
你看看你的cmd声明有没有问题。
实例化有没有问题。
最好把与cmd有关的都贴出来。

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧