存储过程适用于直接数据库,但不适用于Web服务

时间:2016-05-03 21:57:40

标签: c# sql .net web-services stored-procedures

我有一个网站。它有一个Web服务。我使用了很多存储过程,它们都工作得很好,但这个不起作用。当我尝试在Access上运行它时,它运行正常,但是当我尝试通过Web服务使用它时,我没有输出任何输入 - 即使输入在直接数据库上返回输出。

我的存储过程:

SELECT * FROM ShowsList
WHERE (((ShowsList.ShowName) Like '*'+['@str1']+'*')) OR (((ShowsList.ShowDis) Like '*'+['@str2']+'*'));

我的网络服务功能:

[WebMethod]
public DataSet Search(string q)
{
    DataSet ds = new DataSet();
    OleDbDataAdapter dr;
    OleDbCommand myCmd = new OleDbCommand("GetBySearch", this.myConnection);
    myCmd.CommandType = CommandType.StoredProcedure;

    OleDbParameter Param1;
    Param1 = myCmd.Parameters.Add("@str1", OleDbType.BSTR);
    Param1.Direction = ParameterDirection.Input;
    Param1.Value = q;

    OleDbParameter Param2;
    Param2 = myCmd.Parameters.Add("@str2", OleDbType.BSTR);
    Param2.Direction = ParameterDirection.Input;
    Param2.Value = q;

    try
    {
        this.myConnection.Open();
        dr = new OleDbDataAdapter(myCmd);
        dr.Fill(ds);
    }
    catch (OleDbException ex)
    {
        throw ex;
    }
    finally
    {
        this.myConnection.Close();
    }
    return ds;
}

我必须使用网络服务,这是一个需求。我检查了db和函数中sp的名称是否相同,我尝试了所有类型的许多输入。总是相同的结果 - 处理访问,Web服务没有输出。

0 个答案:

没有答案