以后代码产生末提供参数@vid的错误, 
我把ODBC改成SQL,是正常的。希望大家帮忙找下问题, 谢谢~!
public string z015( string vid, out string vgrbm, out string vkh )
{
OdbcConnection conn = new OdbcConnection( ConfigHandler.GetConfig().OdbcConnStr ); OdbcParameter[] parameters = {
 new OdbcParameter( "@vid", OdbcType.VarChar, 30 ),
 new OdbcParameter( "@vgrbm", OdbcType.VarChar, 20 ),
 new OdbcParameter( "@vkh", OdbcType.VarChar, 20 )
}; parameters[0].Value = vid;
parameters[1].Direction = ParameterDirection.Output;
parameters[2].Direction = ParameterDirection.Output; OdbcCommand command = new OdbcCommand(); try
{
conn.Open();
command.Connection = conn;
command.CommandType = CommandType.StoredProcedure;
foreach( OdbcParameter parameter in parameters )
command.Parameters.Add( parameter );
command.CommandText = "z015";
command.ExecuteNonQuery();
}
catch( System.Exception ex )
{
throw ex;
}
finally
{
conn.Close();
} vgrbm = parameters[1].Value.ToString();
vkh = parameters[2].Value.ToString();
return "";
}

解决方案 »

  1.   

    今天怎么了,尽看到看不出问题的问题。
    确信存储过程里有@vid 参数
      

  2.   

    存储过程参数都有的, 说了改成SQL后连SQL server就正常,
    通过ODBC连SQL server就出错以上错误~
      

  3.   

    如果改了方式之后就正确的话,那就怀疑vid是不是ODBC的关键字,或者有其他原因不能使用,试试看改成其他名字之后行不行。