将sqlcommand作为参数传递。即使对象存在于数据库中,也会引发无效对象错误

时间:2013-03-14 17:18:51

标签: c# sqlcommand

我遇到以下代码问题。请帮忙。

我要做的是将sqlcommand传递给一个函数,该函数然后返回一个数据集。

“获取数据”功能将sqlcommand作为参数。此功能在“DatabaseUtilities”类

    //Initializing sql connection
    static SqlConnection _Connection = new SqlConnection("Data Source=(local);Initial Catalog=db_Test;Integrated Security=True");

    //Connection property
    public static SqlConnection Connection
    {
        get {return _Connection;}
    }

    //The class that takes sqlcommand as parameter
    public static DataSet GetData(SqlCommand Command)
    {
        _Connection.Open();

        SqlDataAdapter Adapter = new SqlDataAdapter();
        Adapter.SelectCommand = Command;

        DataSet Table = new DataSet();

        Adapter.Fill(Table);

        _Connection.Close();

        return Table;
    }

这是sqlcommand传递给上述函数的方式。此功能来自不同的类别。

public DataSet GetLogByDate(string SearchValue)
    {
        Command.CommandType = CommandType.StoredProcedure;
        Command.Connection = DatabaseUtilities.Connection;

        Command.CommandText = "sp_GetLogByDate";
        Command.Parameters.AddWithValue("@LogDate", SearchValue);

        return GetData(Command);
    }

此代码抛出了fllowing错误。

无效的对象名称'sp_GetLogByDate'。

我的数据库中有上述存储过程。我不知道为什么会这样。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

您必须将CommandConnection

联系起来
//The class that takes sqlcommand as parameter
public static DataSet GetData(SqlCommand Command)
{
    Command.Connection = _Connection;